Maison > Questions et réponses > le corps du texte
Message d'erreur :
SQLSTATE[42000]: Syntax error or access violation: 1239 Incorrect foreign key definition for 'fk.faq.product_id': Key reference and table reference don't match
Liste de produits :
CREATE TABLE `product` ( `id` BINARY(16) NOT NULL, `version_id` BINARY(16) NOT NULL, `created_at` DATETIME(3) NOT NULL, `updated_at` DATETIME(3) NULL, PRIMARY KEY (`id`,`version_id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
FAQ :
CREATE TABLE `faq` ( `id` BINARY(16) NOT NULL, `question` VARCHAR(255) NULL, `answer` VARCHAR(255) NULL, `product_id` BINARY(16) NOT NULL, `created_at` DATETIME(3) NOT NULL, `updated_at` DATETIME(3) NULL, PRIMARY KEY (`id`), KEY `fk.faq.product_id` (`product_id`), CONSTRAINT `fk.faq.product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`,`version_id`) ON DELETE SET NULL ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
J'ai créé un tableau FAQ, combiné avec le tableau des produits, mais il continue de recevoir des erreurs et je n'arrive pas à trouver où les questions du tableau se trompent. Merci pour l'aide.
P粉8458628262023-07-19 00:36:01
Supprimez la virgule dans ce paragraphe anglais - PRIMARY KEY (id, version_id), supprimez not null dans product_id BINARY(16), supprimez version_id. RÉFÉRENCES product
(id
,version_id
)
Dans la table référencée, il doit y avoir un index dans lequel les colonnes référencées sont dans le même ordre que la première colonne.
https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html