第13行的错误1215(HY000):无法添加外键约束

时间:2016-04-27 10:03:09

标签: mysql foreign-keys

我收到以下错误:

ERROR 1215 (HY000) at line 13: Cannot add foreign key constraint

用于以下查询:

ALTER TABLE client_generique
ADD CONSTRAINT client_generique_boutique_id_boutique_id
FOREIGN KEY (boutique_id) REFERENCES boutique (id)
  ON DELETE SET NULL;

boutique.idprimary key unique not null

精品表的phpmyadmin结构导出是:

--
-- Table structure for table `boutique`
--

CREATE TABLE `boutique` (
  `id` bigint(20) NOT NULL,
  `nom` varchar(255) NOT NULL,
  `identifiant_site` varchar(8) NOT NULL COMMENT 'the eight number identifier from the bank',
  `certificate` varchar(255) NOT NULL COMMENT 'changes according to the mode, this will be used as salt in the sha1 that will be sent to the bank as the ''signature''',
  `mode` varchar(10) NOT NULL COMMENT 'is the ''vads_ctx_mode'': TEST or PRODUCTION',
  `payment_system` varchar(10) NOT NULL COMMENT 'CYBERPLUS OR PAYZEN for the new payment system added in end 2014'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for table `boutique`
--
ALTER TABLE `boutique`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `unique_mode_per_identifiant_idx` (`identifiant_site`,`mode`);

我不明白。是什么原因?如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您的表格client_generique是否可以将boutique_id中的值存储在您的表boutique中不存在? 由于您尝试建立对boutique的引用,因此该表中必须存在值。

答案 1 :(得分:0)

感谢Philipp Dietl的解决方案。

在非空列上删除时,无法在delete上添加设置为null的外键约束。

我刚刚将boutique_id列修改为BIGINT(但没有BIGINT NOT NULL)。