我有两张桌子:父母和孩子。子列之一引用具有 FOREIGN KEY 约束的父 PRIMARY KEY - child.parent_id 引用 parent.parent_id。
子表中的外键列允许 NULL 值,因为何时创建子表可能还不知道父表。但是,当有关父级的信息将被分配/更新时,我希望具有参照完整性。
现在的问题是:
如何将空值从 HTML 表单传递到 MySQL?引号''或“”不起作用“外键约束失败”可能是因为它传递了空字符串而不是空值。或者我是否需要在 PHP 中进行一些额外的检查并将其转换为 null ?
CREATE TABLE IF NOT EXISTS `parent` (
`parent_id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`surname` varchar(20) NOT NULL,
PRIMARY KEY (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `child` (
`child_id` int(11) NOT NULL AUTO_INCREMENT,
`child_name` varchar(20) NOT NULL,
`parent_id` int(11) DEFAULT NULL,
PRIMARY KEY (`child_id`),
KEY `fk_parent_id` (`parent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
ALTER TABLE `child`
ADD CONSTRAINT `fk_parent_id` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`parent_id`);