MySQL Workbench 创建表时出现错误 1064

标签 mysql sql mariadb

我尝试将 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.

您在上面看到的代码是使用“创建表”工作台功能生成的。

最佳答案

UNSIGNEDINT 一起使用,所以这是有效的:

`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/

相关文章:

php - MySQL/PHP 清理/验证存储在数据库中的 URL 的最佳方法

mysql - Nodejs函数返回未定义,尽管回调参数有值

mysql - 如何恢复始终作为列生成的mysql备份?

php - nginx 验证到 mysql 后端

sql - 在 JOIN 查询中使用 LIKE

sql - INNER JOIN 性能是否取决于表的顺序?

java - 检查时间戳(毫)是否属于特定日期

mysql - 错误 1452 : Cannot add or update a child row: a foreign key constraint fails

mysql - 起草查询数据时如何减少存储过程上的重复SQL语句

php - SQL语法;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法