Original Question: Database Design: need composite key + foreign keyDatabase Design: besoin clé composite + partie clé étrangère 2
Voici ce que j'ai besoin:
- Une valeur incrémentiel automatique pour
Id
- Colonnes
a
etb
à traiter comme une clé composite
SQL:
SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL';
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `mydb` ;
-- -----------------------------------------------------
-- Table `mydb`.`foo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`foo` (
`id` INT NOT NULL AUTO_INCREMENT ,
`a` VARCHAR(45) NOT NULL ,
`b` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `a_UNIQUE` (`a` ASC) ,
UNIQUE INDEX `b_UNIQUE` (`b` ASC))
ENGINE = InnoDB;
SET [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
Cet insert devrait travail parce que les valeurs pour a, b sont différentes:
INSERT INTO `mydb`.`foo`
(`id`, `a`, `b`)
VALUES
(NULL, 'hello world', '1'),
(NULL, 'hello world', '2')
Pourquoi pas le travail SQL?