我有这样的桌子。
code | name
-------+---------------
102 | chennai
101 | delhi
我想将chennai的代码更改为101,将delhi的代码更改为102。我该怎么做?
我有这样的桌子。
code | name
-------+---------------
102 | chennai
101 | delhi
我想将chennai的代码更改为101,将delhi的代码更改为102。我该怎么做?
update table1 set code = 103 where code = 102;
update table1 set code = 102 where code = 101;
update table1 set code = 101 where code = 103;
或者你可以使用CURSOR
假设没有外键,表名是city,城市名是唯一的,数据库是mysql。您可以对其他数据库使用相同的概念。1. 删除索引。2. 更新值 3. 重新创建索引
CREATE TABLE `city` (
`id` int(11) unsigned NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
alter table city drop primary key;
update city, (
select 101 as id, 'chennai' as name
union all
select 102 as id, 'delhi' as name
) newIDs
set city.id = newIDs.id
where city.name = newIDS.name ;
alter table city add primary key (id);