MySQL 错误 1604 位于第 1 行 ') NOT NULL, )' 附近

标签 mysql

mysql> USE bitcoin;
Database changed
mysql> CREATE TABLE btc ( uuid VARCHAR(36) NOT NULL, ign VARCHAR(20) NOT NULL, btc DOUBLE(30) NOT NULL, ) ENGINE=InnoDB;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') NOT NULL, ) ENGINE=InnoDB' at line 1
mysql> CREATE TABLE btc ( uuid VARCHAR(36) NOT NULL, ign VARCHAR(20) NOT NULL, btc DOUBLE(30) NOT NULL, );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') NOT NULL, )' at line 1
mysql> CREATE TABLE btc ( uuid VARCHAR(36) NOT NULL, ign VARCHAR(20) NOT NULL, btc DOUBLE(30) NOT NULL, );

在 Debian 上使用 MYSQL 命令行时会引发此错误。我正在尝试创建一个具有给定值的表。

mysql> CREATE TABLE btc ( uuid VARCHAR(36) NOT NULL, ign VARCHAR(20) NOT NULL, btc DOUBLE(30) NOT NULL);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') NOT NULL)' at line 1
mysql>

也不起作用。

最佳答案

在每个 CREATE TABLE 语句中的最后一个 NOT NULL 和右括号之间有一个额外的 ,,并且在我认为无效的 DOUBLE(30):

mysql> CREATE TABLE btc ( uuid VARCHAR(36) NOT NULL, ign VARCHAR(20) NOT NULL,
  btc    DOUBLE(30) NOT NULL, ) ENGINE=InnoDB;
               ^^^^             ^

删除它,因此语句的结尾改为 btc DOUBLE NOT NULL) ENGINE=InnoDB;

关于MySQL 错误 1604 位于第 1 行 ') NOT NULL, )' 附近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22975258/

相关文章:

具有不同字符集的mysql复制表

php - MYSQL 正则表达式 负向先行替代方案

mysql - 列不能为空(MySQL 和 Hibernate)

MySQL 使用 auto_increment id 创建临时表并选择查询

mysql - 如何从带有日期时间的数据库中获取与当前日期相关的数据

MySQL数据字段转oracle

mysql - SQL语句重构

mysql - 如何简化多重强制转换 MySql select 语句?

mysql - Multi-Tenancy 系统从 MYSQL 迁移到 POSTGRES

mysql - 改变一个大的 mysql 表 700 gb