簡體   English   中英

兩列組合作為mysql中的唯一Key

[英]Combination of two columns as unique Key in mysql

需要通過組合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 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 ), UNIQUE KEY Ticket_Number ( Ticket_Number ) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

創建一個唯一索引:

create unique index idx_table_ticket_code on table(ticket_number, code)

使用此代碼創建表

CREATE TABLE ticket(
    id INT,
    ticket_number INT,
    code INT,
    PRIMARY KEY (id)
) 

CREATE UNIQUE INDEX index_name ON ticket(id, ticket_number, code);

這將作為一個復合鍵。

按照給定的

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;

traffic_hit_reports是一個表名,
ALTER TABLE更改表架構,
ADD UNIQUE添加唯一約束和
content_idhit_date是字段名稱。

現在,

ALTER TABLE `traffic_hit_reports` ADD UNIQUE `unique_index`(`content_id`,`hit_date`);

結果: 在此處輸入圖片說明

暫無
暫無

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

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