需要在mysql中组合两列来设置唯一键。例如
id Ticket_number Code Name
1 5 123 a
2 5 89 b
3 2 89 a
4 8 123 c
这里我想通过组合两者来将Ticket_number和Code设置为唯一。即只有再次出现相同的组合时才应出现错误。票号和代码可以重复,但组合不应重复。这怎么可能。请帮帮我。
这是create语句:
CREATE TABLE arlog
(
id
int(11)NOT NULL AUTO_INCREMENT,
Ticket_Number
varchar(40)NOT NULL,
Code
varchar(10)NOT NULL,
Name
varchar(100)NOT NULL,
PRIMARY KEY(id
),
独特的钥匙Ticket_Number
(Ticket_Number
)
)ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = latin1;
答案 0 :(得分:3)
使用此代码创建表
CREATE TABLE ticket(
id INT,
ticket_number INT,
code INT,
PRIMARY KEY (id)
)
CREATE UNIQUE INDEX index_name ON ticket(id, ticket_number, code);
将充当复合键。
答案 1 :(得分:2)
创建一个唯一索引:
create unique index idx_table_ticket_code on table(ticket_number, code)
答案 2 :(得分:1)
按照给出
CREATE TABLE tablename (
id INT,
user_id INT,
setting_id INT,
NAME VARCHAR(255)
);
CREATE UNIQUE INDEX index_name ON tablename(user_id, setting_id);
INSERT INTO tablename (NAME,user_id,setting_id) VALUES ('1',34,15)
ON DUPLICATE KEY UPDATE NAME = '1', user_id = 34, setting_id = 15;