Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >向相互依赖的新表中插入新数据

向相互依赖的新表中插入新数据
EN

Stack Overflow用户
提问于 2018-07-04 11:39:22
回答 2查看 44关注 0票数 0

我不知道如何用值为我的数据库添加种子。几乎我拥有的每个表都是相互引用的,所以我不知道如何执行insert语句。下面是我对这两个问题的表模式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

这个方法不起作用,因为在对我来说有意义的情况下,它只是说使用两个insert语句。但是没有回答我如何防止我的外键失败

https://dba.stackexchange.com/questions/66778/how-to-insert-data-into-tables-which-reference-each-othermysql

这个也不起作用,因为它根本没有真正回答这个问题。

EN

回答 2

Stack Overflow用户

发布于 2018-07-04 11:51:00

我觉得你应该重新考虑你的数据库设计。

如果您有utility_companymonthly_number,那么使用两个带有一个外键的表似乎是可行的。

monthly_number将有3列:

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

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

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

如果您需要记录跨年的数字,那么也可以添加一个year列。

票数 0
EN

Stack Overflow用户

发布于 2018-07-04 11:58:25

另一种解决方案是否使用M:N关系,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
utility_company: utility_company_id (PK), utility_company_name
month: month_id (PK), month_name
monthly_figures: utility_company_id (composite PK), month_id (composite PK), numbers 

year列也可以轻松地添加到表monthly figures中。

这样,在向monthly_figures联接表添加任何内容之前,父表中的数据必须存在。这解决了我应该填充哪个表的第一个问题。

或者,您可以使用传统的1:M场景,其中utility_company_id只是表monthly_figures上的FK。在这里,将首先填充父utility_company表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51179982

复制
相关文章
PHP MySQL向数据库表中插入新记录
INSERT INTO table_name (column1,column2,...)
哆哆Excel
2022/10/25
20.5K0
PHP MySQL向数据库表中插入新记录
Mybatis 向指定表中批量插入数据
Mybatis 向指定表中批量插入数据
Java架构师必看
2021/09/30
1.6K0
c语言数组中插入新数据
在数组的应用中,我们有时会向数组中插入一个数据,而且不打破原来的排序规律,其实数组中的插入数据,就是数据的比较和移动;如果想要弄懂这些方法最好拿笔比划以下,或者debug一下,了解其中的思想,光看理解的不深;
全栈程序员站长
2022/09/14
1.8K0
c语言数组中插入新数据
phpMySQL 向数据表插入数据
INSERT INTO table_name ( field1,field2,...fieldN )
哆哆Excel
2022/10/25
3.1K0
phpMySQL 向数据表插入数据
php向mysql数据表插入数据
php创建数据库,数据表以及向数据表插入数据实例 <?php $con = new mysqli("localhost","root","");//创建连接 //创建数据库 $sql="CREATE 
十月梦想
2018/08/29
2.8K0
phpMyqli向数据表插入多条数据
在用PHP操作数据库时,有时候我们需要一次性执行多条sql语句,比如批量增加用户,这时如果单条单条的向mysql数据库发送sql指令,效率不高,这时可以考虑使用批量执行sql语句的方式。
哆哆Excel
2022/10/25
1.7K0
phpMyqli向数据表插入多条数据
Java向Oracle数据库表中插入CLOB、BLOB字段
在需要存储较长字符串到数据库中时往往需要使用一些特殊类型的字段,在Oracle中即blob和clob字段,一般而言:Clob字段存储字符信息,比如较长的文字、评论,Blob字段存储字节信息,比如图像的base64编码。
ZONGLYN
2019/08/08
6.7K0
如何在MySQL数据库中创建新表
[IF NOT EXISTS]主要是用于判定新建的表是否存在 engine需要指定存储引擎。可以使用任何存储引擎,如:InnoDB,MyISAM,HEAP,EXAMPLE,CSV,ARCHIVE,MERGE, FEDERATED或NDBCLUSTER。如果不明确声明存储引擎,MySQL将默认使用InnoDB。 column_list较为复杂,为指定表的列表。字段的列用逗号(,)分隔。 column_list的语法如下:
用户7639835
2021/08/26
10K0
软件测试|教你怎么向SQL中插入数据
有的时候,我们需要向数据库表中写入新数据,但是我们不可能新建一个表,我们需要使用插入功能向数据库表中写入新数据。
霍格沃兹测试开发Muller老师
2023/06/02
7740
sed插入和附加新行
sed可以在文本的某一行前或者后插入一行或者多行文本。这涉及到insert和append两个命令。
生信编程日常
2020/07/30
8.7K0
java向数据库中插入中文出现乱码
引用 http://www.cnblogs.com/jack204/archive/2012/09/11/2680106.html
forxtz
2020/10/10
9520
Android新手之旅(11) 在现有页面中插入新的view
  一些特定的情况下,无法用静态的方法定义页面中用到的view。如自定义的曲线图,就是一个独立的view,要把它作为一个部分插入到页面中,需要以下的方法: LinearLayout l = new LinearLayout(this);   //l就是当前的页面的布局 l.addView(myView);   //加入新的view l.setPadding(20, 390, 20, 40);  //设置位置 LinearLayout.LayoutParams p = new LinearLayout.Lay
用户1075292
2018/01/23
1.3K0
sql中的insert语句怎么写?怎么向数据库中插入数据?
sql中insert语句就是插入语句,用于将指定的数据插入至表当中,向表中增加新的一行。
吃猫的鱼Code
2023/02/02
5.6K0
通过post向mysql插入数据
        前面简单介绍了php操作mysql的方法,接下来通过post的方式获取的数据插入mysql!
十月梦想
2018/08/29
1.5K0
使用新类型Nullable处理数据库表中null字段
在.net 2.0中,提供了 Nullable的范型,通过它,我们可以为基础类型如int等赋予null的值,这样我们就可以处理null值了。 例子代码 数据表有个字段updateTimestamp,
张善友
2018/01/19
1.4K0
VBA 创建一个新表,并复制其它表数据
Application.DisplayAlerts = False
办公魔盒
2019/07/22
3.2K0
linux下向一个文件中的某行插入数据的做法
sed -i 'ni\x' test.file        表示向test.file文件里的第n行的前面添加x内容 sed -i 'na\x' test.file       表示向test.file文件里的第n行的后面添加x内容 sed -i '/m/i\x' test.file     表示向test.file文件里匹配m字符串的行的前面添加x内容 sed -i '/m/a\x' test.file    表示向test.file文件里匹配m字符串的行的后面添加x内容 -i     表示in fron
洗尽了浮华
2018/01/23
1.8K0
点击加载更多

相似问题

如何向新表插入新的post数据

10

saveAsTable -如何向现有表中插入新数据?

20

如何将新数据插入到表中,然后再次向该表插入新数据

13

向带有存储过程的表中插入新数据

11

sql:向表中插入新列

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文