簡體   English   中英

我收到此錯誤:ALTER TABLE 語句與 FOREIGN KEY 約束“foreign_key1”沖突

[英]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;

在 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`)
);

或者:

ALTER TABLE `song`
  ADD CONSTRAINT `foreign_key1`
    FOREIGN KEY (`producer`)
      REFERENCES `producer` (`name`)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION;

你可以在這里看到。

我可以建議您聲明與 name 列相同的長度。 es. 變量字符(50)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM