为同一个值插入多行行 - SQL

时间:2017-02-20 11:16:23

标签: php mysql sql

如何为同一个值插入多行 例如,每个用户必须提交2个表单,因此每个表单中的用户名相同但信息不同

我尝试使用UPDATE但它删除了ole信息并将其替换为新信息,而我想保留两者

有办法吗?

6 个答案:

答案 0 :(得分:3)

insert into your_table (username, col2)
values ('user1', 1),
       ('user1', 2)

答案 1 :(得分:0)

您可以添加重复数据,只是您的主键不能重复,因为它会导致主键约束。所以你可以做的是有一个额外的列让我们说“ID”使它成为你的主键。在提交行时,继续将ID列的值加1,其余数据可能相同。

答案 2 :(得分:0)

使用以下插入格式获得所需结果:

insert into Table_name(Field1, Field2)
SELECT 'user_1', 1 UNION ALL
SELECT 'user_1', 2

答案 3 :(得分:0)

这取决于您的USERNAME列是否允许重复。

如果它是表的主键,那么表格架构不支持你想要做的事情,因为PK应该是独一无二的。

如果您的USERNAME列允许重复,您可以使用INSERT:

 declare @username varchar(max) = 'your_username' --declare a variable to use the same username

 insert into table_name (username, form_data)
 values(@username, 'form_data_1')
      ,(@username, 'form_data_2')

这还取决于您如何执行SQL语句。我肯定会去创建存储过程来执行此插入。

答案 4 :(得分:0)

有两张桌子,' USERS'和' FORMSUBMISSIONS'

当用户第一次提交表单时,会在USERS表中创建一个新条目,该条目对每个用户都是唯一的,并且包含连接到该用户的信息。

每当提交表单(包括第一次)时,都会在FORMSUBMISSIONS表中写入一个条目,其中包含该提交的详细信息以及返回给USERS的外键。

这是针对这种情况的更清洁的数据模型。它还将有助于未来对数据的查询。如果由于某种原因限制为单个表,那么只要USER字段上没有唯一键,连续插入就会如上所述。

答案 5 :(得分:0)

您可以使用批量插入查询。正如@huergen所建议的,但请确保您的用户名或表单数据中的任何字段没有UNIQUE键索引。你还可以在该表中添加另一个像PRIMARY键一样的字段。还有许多方法可以做,但这取决于你的要求。