2014-06-28 35 views
0

我有一個Account表和一個Customer表。一個帳戶有很多客戶。客戶的名稱在其引用的帳戶中是唯一的。意思是,屬於同一個帳戶的兩個客戶應該有一個唯一的名稱。我如何應用這個約束?以下是mysql表結構。如何在外鍵範圍內定義unqiue限制

謝謝。

CREATE TABLE IF NOT EXISTS `sample`.`Account` (
    `id` BIGINT NOT NULL AUTO_INCREMENT, 
    `email` VARCHAR(45) NOT NULL, 
    `password` VARCHAR(45) NULL, 
    `created_date` DATE NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE INDEX `email_UNIQUE` (`email` ASC)) 
ENGINE = InnoDB 
AUTO_INCREMENT = 0; 

CREATE TABLE IF NOT EXISTS `sample`.`Customer` (
`id` BIGINT NOT NULL AUTO_INCREMENT, 
    `name` VARCHAR(45) NOT NULL, 
    PRIMARY KEY (`id`), 
    INDEX `account_fk_id_idx` (`account_id` ASC), 
    CONSTRAINT `account_fk_id` 
    FOREIGN KEY (`account_id`) 
    REFERENCES `sample`.`Account` (`id`) 
    ON DELETE CASCADE 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB 
AUTO_INCREMENT = 0; 
+0

定義指定的帳戶組,並將客戶表中的組標識用作外鍵之一。 –

回答

0

我想你想:

unique (account_id, name) 

Customer表。

+0

謝謝。我會試試這個。 – user3261334