[英]i getting this error: The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "foreign_key1"
CREATE TABLE singer(
name varchar(50) primary key,
email varchar(50) not null,
account_number varchar(50) not null,
balance int not null
);
create table song(
id int primary key,
name varchar(50) not null,
singer varchar(50) foreign key references singer,
producer varchar(50) not null,
album varchar(50) not null,
total_sell int not null
);
CREATE TABLE producer(name VARCHAR(20) PRIMARY KEY);
ALTER TABLE song ALTER COLUMN producer VARCHAR(20);
ALTER TABLE song ADD CONSTRAINT foreign_key1 FOREIGN KEY(producer) REFERENCES producer;
In MySQL you can use this:在 MySQL 中你可以使用这个:
CREATE TABLE producer(
name varchar(20),
PRIMARY KEY (name)
);
CREATE TABLE song(
id int,
name varchar(50) not null,
singer varchar(50) not null,
producer varchar(50) not null,
album varchar(50) not null,
total_sell int not null,
PRIMARY KEY (`id`),
CONSTRAINT `foreign_key1` FOREIGN KEY (`producer`) REFERENCES `producer` (`name`)
);
OR:或者:
ALTER TABLE `song`
ADD CONSTRAINT `foreign_key1`
FOREIGN KEY (`producer`)
REFERENCES `producer` (`name`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
I can advise you to declare the same length as the name column.我可以建议您声明与 name 列相同的长度。 es.
es. varchar(50)
变量字符(50)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.