MySQL中有两个表,如下所示:
请注意,category_id是类别表中category_key的FOREIGN KEY
我想在第三个表(名为“catalog”)中插入目录项,这样每个目录ID都将从其类别和子类别ID生成,每个类别子类别ID的串联编号都会自动递增。
例如:
假设“categories”表中有一行的categories_键为“ABC”,而“sub_categories”表中也有一行的sub_categories_键为“EFG”,那么目录表中的一行的键为“ABC-EFG-0001”,同一子类别中的另一行的键为“ABC-EFG-0002”,依此类推。
而对于其他ID值,例如.category_id="OMG"和sub_category_id="YYY",数字的增量将从1开始,因此ID将是"OMG-YYY-0001"。
我可以举一个插入查询的例子吗?
谢谢
您可以使用ROW\u NUMBER()
(在MySQL 8.0中提供)来分配数字,并使用LPAD()
来格式化数字。请注意,您不需要使用表类别
,因为所有相关信息都可以在子类别
中找到(但如果您确实需要它,您只需添加一个联接
)。
INSERT INTO catalog
SELECT
sc.*,
CONCAT(
category_key,
'-',
sub_category_key,
'-',
LPAD(
ROW_NUMBER() OVER(PARTITION BY category_key, sub_category_key ORDER BY sub_category_key),
4,
0
)
)
FROM sub_categories sc
您好,我尝试使用mysqli从第一个表中获取autoincrement id,然后插入到第二个表中,这是我为每个表设计的数据库 表用户 表siswa 这就是我尝试过的 数据插入到用户表中,但不插入到siswa表中,对此有何建议? 编辑:被忽略的变量只($jkortu)现在修复,谢谢
例如,我有一个包含2个表的数据库。第一个表(表 1)包含: userId 是我的主键,它是自动递增的。我的下一个表(表2)有: userId(来自表2)是我引用表1(userId)的外键。是否有一种方法可以插入到两个表的所有信息中,并使表2中的用户ID自动从表1中获取它引用的主键?或者,我必须为每个表执行多个插入,并显式地使外键具有相同的值。
问题内容: 我知道这是行不通的,以各种形式尝试过并且一直失败。实现以下结果的最简单方法是什么? 这对于自动化项目非常有用。谢谢! 问题答案: 使用准备好的语句:
问题内容: 我想知道是否有一种方法可以完全在sql中执行此操作: 注意: q1将返回约3万行。 有什么办法可以在直式sql中完成上述操作?要直接从一个表(基本上是原始数据表)中提取数据并插入到另一个表(基本上是已处理数据表)中? 问题答案:
问题内容: 我想从一个表中读取所有数据,然后将一些数据插入到另一个表中。我的查询是 但我有一个错误 请帮我。 问题答案: 您可以使用INSERT … SELECT语法。请注意,您可以在SELECT部分中直接引用“ 1”。
问题内容: 我正在使用php和mysql。我有一个表,其中id列设置为自动递增作为主键。我正在尝试添加另一个名为sort_order的列。插入行后,sort_order列应自动递增。然后,用户将能够更改sort_order值。但是mysql不允许多于一列的自动递增? 自动递增sort_order值的最佳方法是什么? 受欢迎的要求,更多的解释。 在管理区域中,用户将具有类别列表。用户可以使用java