1

我有一张带有复合主键的表:

create table mercati(
ubicazione varchar(20) not null,
giorno ENUM('LU','MA','ME','GI','VE','SA','DO') not null,
ora_inizio time not null,
ora_fine time not null,
comune varchar(20) not null,
primary key(ubicazione,comune),
foreign key(comune) references comuni(comune)
)ENGINE=InnoDB;

然后我执行

Insert into mercati values ("liberty square","LU",07:00,13:00,"Padova")

但是当我尝试

Insert into mercati values ("Corso Australia","LU",07:00,13:00,"Padova") 

它说“重复条目'Padova' 键'comune'”。但是单独的社区不是主要的,或者不是?

4

1 回答 1

0

我认为您应该更改表结构并添加带有 auto_increment 的整数列作为主键

create table mercati(
id int(10) NOT NULL AUTO_INCREMENT,
ubicazione varchar(20) not null,
    giorno ENUM('LU','MA','ME','GI','VE','SA','DO') not null,
    ora_inizio time not null,
    ora_fine time not null,
    comune varchar(20) not null,
    primary key(id),
    foreign key(comune) references comuni(comune)
)ENGINE=InnoDB;

现在您可以在没有问题的情况下插入数据

Insert into mercati (ubicazione, giorno, ora_inizio, ora_fine, comune) values ("liberty square","LU",'07:00','13:00',"Padova");
Insert into mercati (ubicazione, giorno, ora_inizio, ora_fine, comune) values ("Corso Australia","LU",'07:00','13:00',"Padova") ;

Live Sql 小提琴

于 2013-06-04T14:14:44.443 回答