Adh*_*pta 118 sql sql-server
我想在现有的遗留数据库中添加一个列,并编写一个过程,通过该过程我可以为每个记录分配不同的值.像添加列并为其自动生成数据之类的东西.
就像,如果我添加一个名为"ID"(数字)的新列,我想为每个记录初始化一个唯一值.所以,我的ID列将有1到1000的记录.我该怎么做?
Sim*_*son 208
这取决于数据库,但对于SQL Server,这可以通过以下方式实现:
alter table Example
add NewColumn int identity(1,1)
Run Code Online (Sandbox Code Playgroud)
Tom*_*tin 21
如果您发布了正在使用的SQL数据库,这将有所帮助.对于MySQL,您可能需要auto_increment:
ALTER TABLE tableName ADD id MEDIUMINT NOT NULL AUTO_INCREMENT KEYRun Code Online (Sandbox Code Playgroud)
不确定这是否会追溯应用值.如果不是,您应该只能使用存储过程或简单程序迭代您的值(只要没有其他人正在写入数据库)并设置使用该LAST_INSERT_ID()函数来生成id值.
Roy*_*ang 10
对于oracle你可以做类似下面的事情
alter table mytable add (myfield integer);
update mytable set myfield = rownum;
Run Code Online (Sandbox Code Playgroud)
和Postgres等价(仅当你想要"id"作为键时,第二行才是强制性的):
ALTER TABLE tableName ADD id SERIAL;
ALTER TABLE tableName ADD PRIMARY KEY (id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
227662 次 |
| 最近记录: |