【发布时间】:2014-07-25 21:15:22
【问题描述】:
为了我的一生,我不能,为了一个:
弄清楚为什么 MySQL 抱怨这个 INSERT 声明:
CREATE TABLE IF NOT EXISTS `mangobase`.`profile_education` (
`id` TINYINT UNIQUE UNSIGNED NOT NULL DEFAULT 0,
`description` VARCHAR(50) NOT NULL DEFAULT 'xxx',
PRIMARY KEY (`id`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;
投诉:
ERROR 1064 (42000) at line 91: 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 'UNSIGNED NOT NULL DEFAULT 0,
`description` VARCHAR(50) NOT NULL DEFAULT 'xxx',' at line 2
删除id 列定义中的UNIQUE 允许此语句无错误地通过。但是,其次,为什么首先要创建它?我没有将它指定为 MySQL Workbench 中的唯一列(UQ 将列指定为唯一):
我有其他表以完全相同的方式定义(相同的字段名称,定义属性),其中 MySQL WB 没有将 UNIQUE 分配给列定义。每次我想在生产期间更新数据库时都需要手动编辑 sql 脚本确实很乏味。
- 是否有明显的我忽略的东西导致 MySQL WB 将
UNIQUE分配给此列? - 为什么“UNIQUE”一开始在这里似乎是非法的?
【问题讨论】:
标签: mysql sql database database-design mysql-workbench