我有一张表,我希望在同一列中插入所有条目的不同值 该列尚未插入值,我希望为每个条目插入一个不同的字符串 可能吗?如果是的话,你可以帮我一些代码吗? 我知道如何在列上更新具有相同值的所有条目:
UPDATE table_name SET column_name = 'your_string';
答案 0 :(得分:0)
您可以使用不同的值填充列,并使用它来填充目标列。
使用MySQL数据库考虑以下示例。
创建表格
CREATE TABLE a (
column1 varchar(20),
column2 varchar(20),
column3 varchar(50)
);
表格人口:
insert into a(column1, column2) values('a','100');
insert into a(column1, column2) values('b','200');
insert into a(column1, column2) values('c','300');
检查表:
select * from a;
+---------+---------+---------+
| column1 | column2 | column3 |
+---------+---------+---------+
| a | 100 | NULL |
| b | 200 | NULL |
| c | 300 | NULL |
+---------+---------+---------+
使用column2填充column3:
update a set column3=concat('value-',column2);
再次检查表格
select * from a;
+---------+---------+-----------+
| column1 | column2 | column3 |
+---------+---------+-----------+
| a | 100 | value-100 |
| b | 200 | value-200 |
| c | 300 | value-300 |
+---------+---------+-----------+
(可选)如果不需要,请删除column2:
alter table a drop column column2;
select * from a;
+---------+-----------+
| column1 | column3 |
+---------+-----------+
| a | value-100 |
| b | value-200 |
| c | value-300 |
+---------+-----------+
答案 1 :(得分:0)
SQL Server支持可更新的CTE和子查询。事实证明这很简单:
with toupdate as (
select t.*, row_number() over (order by (select null)) as seqnum
from t
)
update toupdate
set col = cast(seqnum as varchar(255));
插入的值是转换为字符串的数字。
更简单的替代方法是使用newid()
:
update t
set col = newid();
您可以将id分配给字符串列。