【问题标题】:error in SQL syntax near primary key主键附近的 SQL 语法错误
【发布时间】:2016-04-28 21:12:29
【问题描述】:
CREATE TABLE `bank`.`Customer_registrationTable` 
( `Account_no` INT NOT NULL , 
  `Name` VARCHAR(100) NOT NULL , 
  `Address` INT(100) NOT NULL , 
  `Account_type` VARCHAR(100) NOT NULL , 
  `Gender` VARCHAR(50) NOT NULL , 
  `DOB` VARCHAR(100) NOT NULL , 
  `Password` VARCHAR(100) NOT NULL , 
  `Date` VARCHAR(100) NOT NULL , 
  `Age` INT(10) NOT NULL , 
  `Previous_Balance` DOUBLE(20) NOT NULL,  
  PRIMARY KEY (`Account_no`(30))) ENGINE = InnoDB;

写完这篇文章后,我遇到了一个问题,

#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 ') NOT NULL, PRIMARY KEY (`Account_no`(30))) WHERE ENGINE = InnoDB' 附近使用正确的语法

【问题讨论】:

  • 而不是 PRIMARY KEY (Account_no(30)) 只是 PRIMARY KEY (Account_no)
  • 删除年龄列。这是愚蠢和多余的。将日期存储为日期。将钱存储为 DECIMAL。

标签: mysql


【解决方案1】:
CREATE TABLE `bank`.`Customer_registrationTable` 
( `Account_no` INT NOT NULL , 
  `Name` VARCHAR(100) NOT NULL , 
  `Address` INT(100) NOT NULL , 
  `Account_type` VARCHAR(100) NOT NULL , 
  `Gender` VARCHAR(50) NOT NULL , 
  `DOB` VARCHAR(100) NOT NULL , 
  `Password` VARCHAR(100) NOT NULL , 
  `Date` VARCHAR(100) NOT NULL , 
  `Age` INT(10) NOT NULL , 
  `Previous_Balance` DOUBLE NOT NULL,  
  PRIMARY KEY (`Account_no`)) ENGINE = InnoDB;

主键 (Account_no) 不应该有 (20) Previous_Balance DOUBLE NOT NULL 不应该有 (20),它应该像 DOUBLE(20, 2)

【讨论】:

    【解决方案2】:
    CREATE TABLE IF NOT EXISTS `customer_registrationtable` (
     `Account_no` int(11) NOT NULL,
    `Name` varchar(100) NOT NULL,
    `Address` int(100) NOT NULL,
    `Account_type` varchar(100) NOT NULL,
    `Gender` varchar(50) NOT NULL,
    `DOB` datetime NOT NULL,
    `Password` varchar(100) NOT NULL,
    `Date` datetime NOT NULL,
    `Age` int(10) NOT NULL,
    `Previous_Balance` double(20,2) NOT NULL,
    PRIMARY KEY (`Account_no`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 2016-03-12
      • 2018-04-16
      • 1970-01-01
      相关资源
      最近更新 更多