gpt4 book ai didi

MySQL - 约束 NOT NULL 错误 1064

转载 作者:行者123 更新时间:2023-11-29 07:36:55 26 4
gpt4 key购买 nike

我想创建一个表,但出现错误: My Errorcode

为什么他不喜欢我的约束? mysql和sql有什么不同吗?因为 2 年前我创建了同一个表,在 sql 中没有任何问题:(

这里是整个代码

CREATE table Mitarbeiter(
Mitarbeiternummer INT(5),
Personennummer INT(5) constraint not_null_mitarbpersnr NOT NULL,
Gehalt INT(10),
Chef_Mitarbeiternummer INT(5),
constraint mitarbeiter_pk primary key (Mitarbeiternummer),
constraint unique_mitpernr UNIQUE (Personennummer),
constraint marb_fk_persnr foreign key(Personennummer) references person(Personennummer) ON DELETE CASCADE,
constraint marb_fk_chef foreign key (Chef_Mitarbeiternummer) references mitarbeiter(Mitarbeiternummer));

当我想写“personennummer NUMBER(5)”时,我也遇到了同样的错误但它是个人身份号码,因此每个 personennummer 都有相同的长度 5,例如第一个具有“00001”等

希望您能回答我的问题:)

最佳答案

MySQL 不支持为 NOT NULL 约束命名的语法。

这将引发错误:

  Personennummer INT(5) constraint not_null_mitarbpersnr NOT NULL
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

要在 MySQL 中的列上声明 NOT NULL 约束,您必须省略关键字 CONSTRAINT 和名称。此语法有效:

  Personennummer INT(5) NOT NULL
<小时/>

引用:https://dev.mysql.com/doc/refman/5.5/en/create-table.html

请注意,CONSTRAINT 后面的语法不允许 NOT NULLNOT NULL 包含在列定义中。

MySQL 与 Oracle 等其他数据库不同,后者允许您为 NOT NULL 约束指定名称。对于 Oracle,我认为 NOT NULL 约束在字典中显示为约束。因此,我们想要给出一个特定的名称,而不是分配系统生成的 SYS_nnnnnn 名称,这是可以理解的。在 MySQL 中,NOT NULL 被作为列的属性处理,而不是作为单独的约束。

关于MySQL - 约束 NOT NULL 错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30442941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com