我的这个表有一个复合主键:
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'”。 但仅靠公社不是主要的,不是吗?
答案 0 :(得分: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") ;