我的 MySQL 有问题。我创建了名为“BucketList”的数据库,然后尝试创建名为“tbl_user”的表,它看起来像这样:
CREATE TABLE `BucketList`.`tbl_user` (
`user_id` BIGINT NULL AUTO_INCREMENT,
`user_name` VARCHAR(45) NULL,
`user_username` VARCHAR(45) NULL,
`user_password` VARCHAR(45) NULL,
PRIMARY KEY (`user_id`));
之后我遇到了一个问题:“主键的所有部分都必须为 NOT NULL;如果您需要在键中使用 NULL,请改用 UNIQUE”
你们有什么想法吗?出了什么问题?
我使用的MySQL版本是:
mysql --version
mysql Ver 14.14 Distrib 5.7.12, for Win64 (x86_64)
从 MySQL 5.7 开始,它不再支持主键为空值。
查看文档here https://dev.mysql.com/doc/refman/5.7/en/create-table.html#create-table-indexes-keys:
唯一索引,其中所有键列必须定义为NOT NULL
。如果它们没有明确声明为NOT NULL
,MySQL 如此隐式地(并且默默地)声明它们。一张表只能有一个PRIMARY KEY
.
所以,你的user_id
如果要用作主键,则 key 不能为 null。您应该将其声明为不可为空:
CREATE TABLE `BucketList`.`tbl_user` (
`user_id` BIGINT AUTO_INCREMENT,
`user_name` VARCHAR(45) NULL,
`user_username` VARCHAR(45) NULL,
`user_password` VARCHAR(45) NULL,
PRIMARY KEY (`user_id`));
(注意缺少NULL
after BIGINT
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)