如何为同一个值插入多行 例如,每个用户必须提交2个表单,因此每个表单中的用户名相同但信息不同
我尝试使用UPDATE但它删除了ole信息并将其替换为新信息,而我想保留两者
有办法吗?
答案 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键一样的字段。还有许多方法可以做,但这取决于你的要求。