Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为表中的新行生成外键?-mysql-CodeIgniter_Mysql_Codeigniter_Foreign Keys - Fatal编程技术网

如何为表中的新行生成外键?-mysql-CodeIgniter

如何为表中的新行生成外键?-mysql-CodeIgniter,mysql,codeigniter,foreign-keys,Mysql,Codeigniter,Foreign Keys,我的脑袋绕不动外键。我收到一个数据库错误1452,说不能添加/更新子行,我不知道这意味着什么 我在浏览答案时假设您需要从另一个表中获取值,但不确定这是否正确 我试图在表中插入一行,这会导致该错误。如何指定外键的值,就像使用CI插入其他值一样 请帮忙 以下是我试图插入的内容: $salarystuff = array('salary' => $salary, 'from_date' => $salary_from_date, 'to_date' => $salary_to_dat

我的脑袋绕不动外键。我收到一个数据库错误1452,说不能添加/更新子行,我不知道这意味着什么

我在浏览答案时假设您需要从另一个表中获取值,但不确定这是否正确

我试图在表中插入一行,这会导致该错误。如何指定外键的值,就像使用CI插入其他值一样

请帮忙

以下是我试图插入的内容:

$salarystuff = array('salary' => $salary, 'from_date' => $salary_from_date, 'to_date' => $salary_to_date);
$this->db->insert('salaries', $salarystuff);
表中的“薪资”有以下列:emp_no、salary、to date和from date。我已经插入了除了上面看到的id之外的所有内容,但是需要从另一个表中插入id。以下是错误消息:

无法添加或更新子行:外键约束失败 (
员工
工资,约束
工资_ibfk_1
外键 (
emp\u no
)在删除级联上引用员工(
emp\u no

我收到一个数据库错误1452,表示无法添加/更新子项 我不知道那是什么意思

这通常意味着您试图插入行的表至少有一列包含对另一个表的外键引用。这意味着您为该列提供的任何值都必须已经存在于另一个表中。(为不存在的员工存储工资是没有意义的。)

无法添加或更新子行:外键约束失败 (employees.palaries、CONSTRAINT palaries\u ibfk\u 1外键(emp\u编号) 删除级联上的参考员工(emp_编号)

当您在“工资”中插入一行时,您为“emp_no”提供的值必须已经存在于“employees”中

所有可能的值都在“employees.emp_no”中。如何从所有这些可能的值中选择正确的“emp_no”取决于应用程序

大多数情况下,我们希望用户从员工编号和员工姓名的下拉列表中选择一个员工编号,然后填写新的工资。用户是否填写“起始日期”和“截止日期”或是否自动填写取决于应用程序。在用户选择名称并提供薪资后,在用户填写“起始日期”和“截止日期”或按代码计算后,您可以将这些值作为新行插入“薪资”中


在任何情况下,就数据库insert语句而言,您的CI代码应该像处理所有其他列一样处理“emp_no”

你能给我们看看代码吗?您的表模式、现有数据的示例以及您试图插入的内容?是的,很抱歉,我正在使用dev.mysql.com网站上提供的数据库