J'ai deux tables comme suit:MySQL: contrainte de clé étrangère ne sont pas appliquées
CREATE TABLE customer
(
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(25),
PRIMARY KEY(id)
);
CREATE TABLE `client`
(
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(200),
`customer_id` INT NOT NULL,
PRIMARY KEY(`id`),
INDEX(`customer_id`),
FOREIGN KEY (`customer_id`) REFERENCES `customer`(`id`) ON UPDATE CASCADE ON DELETE RESTRICT
);
Puis je courais le suivant:
INSERT INTO customer (name) VALUES ('Customer1');
Maintenant, le client de la table contient le nom: Customer1, id: 1
Puis j'ai couru ceci:
INSERT INTO client (name, customer_id) VALUES ('Client of Customer1',34);
Il était supposé échouer, mais il a été inséré avec succès. Pourquoi donc?
Ceci est sur MySQL 5.1 sur Linux Mint.
Les deux tables sont-elles des tables InnoDB? –
étrange. J'utilise 5.5.10 sous Windows et la contrainte a été appliquée. – Sekhar
Comment puis-je vérifier s'ils sont InnoDB? –