我不知道如何为我的数据库添加值。几乎我拥有的每个表都相互引用,因此我不知道如何执行插入语句。以下是我的两个相关表架构:
CREATE TABLE utility_company (
utility_company_id int(11) NOT NULL AUTO_INCREMENT,
utility_company_name varchar(50) NOT NULL,
utility_company_monthly_numbers_id int(11) NOT NULL,
PRIMARY KEY (utility_company_id)
);
CREATE TABLE utility_company_monthly_numbers (
utility_company_monthly_numbers_id int(11) NOT NULL AUTO_INCREMENT,
utility_company_id int(11) NOT NULL,
january_numbers int(10) NOT NULL,
february_numbers int(10) NOT NULL,
march_numbers int(10) NOT NULL,
april_numbers int(10) NOT NULL,
may_numbers int(10) NOT NULL,
june_numbers int(10) NOT NULL,
july_numbers int(10) NOT NULL,
august_numbers int(10) NOT NULL,
september_numbers int(10) NOT NULL,
october_numbers int(10) NOT NULL,
novemember_numbers int(10) NOT NULL,
december_numbers int(10) NOT NULL,
PRIMARY KEY (utility_company_monthly_numbers_id)
);
ALTER TABLE utility_company ADD FOREIGN KEY (utility_company_monthly_numbers_id) REFERENCES utility_company_monthly_numbers(utility_company_monthly_numbers_id);
ALTER TABLE utility_company_monthly_numbers ADD FOREIGN KEY (utility_company_id) REFERENCES utility_company(utility_company_id);
我的数据库中现在没有值,因此我无法弄清楚如何将数据插入到这些表之一中,而不引发外键约束错误。
我可以在这里做什么来制作插入内容?
所以我引用了这些问题,但我无法得到答案:
Mysql: How to insert values in a table which has a foreign key
这个不起作用,因为在对我来说有意义的情况下,它只是说使用两个插入语句。但没有回答如何防止我的外键失败
https://dba.stackexchange.com/questions/66778/how-to-insert-data-into-tables-which-reference-each-othermysql
而这个也不起作用,因为它根本没有真正回答问题。
最佳答案
我认为你应该重新考虑你的数据库设计。
如果您有 utility_company
和 monthly_number
,听起来应该可以拥有 2 个带有 1 个外键的表。
monthly_number
将有 3 列:
utility_company
的外键monthly_number
- 月份(可能是整数)
通过使用这种设计,它可以通过非常简单的外键结构解决您的问题。
monthly_number
表中的每条记录都代表特定公司在特定月份的 monthly_number
。
如果您需要记录跨年的数字;然后,您还可以添加year
列。
关于mysql - 将新数据插入到相互依赖的新表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179982/