我尝试将 MySQL Workbench 8.0.3 与 MariaDB 一起使用,但出现以下错误:
Executing:
CREATE TABLE `mydb`.`customer` (
`ID` INT UNIQUE UNSIGNED NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(255) NOT NULL,
`Email` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
`Street` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_czech_ci' NOT NULL,
`City` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_czech_ci' NOT NULL,
PRIMARY KEY (`ID`));
ERROR 1064: You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near 'UNSIGNED NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(255) NOT NULL,
`Email` VARC' at line 2
SQL Statement:
CREATE TABLE `mydb`.`customer` (
`ID` INT UNIQUE UNSIGNED NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(255) NOT NULL,
`Email` VARCHAR(255) CHARACTER SET 'utf8' NOT NULL,
`Street` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_czech_ci' NOT NULL,
`City` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_czech_ci' NOT NULL,
PRIMARY KEY (`ID`))
Operation failed: There was an error while applying the SQL script to the database.
您在上面看到的代码是使用“创建表”工作台功能生成的。
最佳答案
UNSIGNED
和 INT
一起使用,所以这是有效的:
`ID` INT UNSIGNED UNIQUE NOT NULL AUTO_INCREMENT,
这更短:
`ID` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
主键已经是非NULL
且唯一
。无需两次声明这些属性。
关于MySQL Workbench 创建表时出现错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53215122/