gpt4 book ai didi

mysql - 无法创建表 'mydb.contact'(错误号 : 150)

转载 作者:行者123 更新时间:2023-11-29 07:21:20 25 4
gpt4 key购买 nike

拜托,这是我的 sql 脚本

#-- creation de la table user
CREATE TABLE IF NOT EXISTS user(
iduser int AUTO_INCREMENT,
nom VARCHAR(50) NOT NULL,
prenom VARCHAR(50) ,
adressemail VARCHAR(200) NOT NULL,
motdepasse VARCHAR(200) NOT NULL,
CONSTRAINT pk_user PRIMARY KEY(iduser)
);


#-- creation de la table user
CREATE TABLE IF NOT EXISTS contact(
idcontact INT AUTO_INCREMENT,
nom VARCHAR(45) NOT NULL,
prenom VARCHAR(45),
adressemail VARCHAR(200) UNIQUE,
user_iduser INT NOT NULL,
CONSTRAINT pk_contact PRIMARY KEY(idcontact),
CONSTRAINT fk_contact_userIduser_user FOREIGN KEY (user_iduser) REFERENCES user(iduser) ON DELETE SET NULL ON UPDATE CASCADE
);

当我在 maria db 数据库上执行它时,出现此错误:

无法创建表“mydb.contact”(errno:150)

最佳答案

在外键约束中,您已将删除操作设置为set null,但列user_iduser 不允许空值,因为它被指定为 not null 这使得约束无效。更改列以允许空值或更改约束中的删除操作。

在线 MySQL 手册甚至有 a warning关于这个:

If you specify a SET NULL action, make sure that you have not declared the columns in the child table as NOT NULL.

关于mysql - 无法创建表 'mydb.contact'(错误号 : 150),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36042564/

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