mysql - 将新数据插入到相互依赖的新表中

标签 mysql mariadb

我不知道如何为我的数据库添加值。几乎我拥有的每个表都相互引用,因此我不知道如何执行插入语句。以下是我的两个相关表架构:

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_companymonthly_number,听起来应该可以拥有 2 个带有 1 个外键的表。

monthly_number 将有 3 列:

  1. utility_company的外键
  2. monthly_number
  3. 月份(可能是整数)

通过使用这种设计,它可以通过非常简单的外键结构解决您的问题。

monthly_number 表中的每条记录都代表特定公司在特定月份的 monthly_number

如果您需要记录跨年的数字;然后,您还可以添加year列。

关于mysql - 将新数据插入到相互依赖的新表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179982/

相关文章:

mysql - csv导入没有导入行

mysql - 从nodejs一行一行地写入mysql表多行

mysql - MySQLx 尝试解析表达式时出错(Nodejs)

mysql - 使用同一表中查询的计数值更新行列

mysql - 使用 MySQL 时对 my.ini 的更改不持久

mysql - 将一个表插入另一个具有冲突的自动增量值的最简单方法?

mysql - MariaDB 的 Innodb 引擎变量

连接到 Mysql 数据库时找不到 python:mysql_config

php - 尝试使用 MySQL 字段作为数据的限制

mysql - 如何使用 MariaDB 安装 wordpress?