sql 查询删除除主键之外的所有属性
sql query to delete all attribute except primary key
假设我有一个包含 3 table 个房间的数据库:room_lvl1、room_lvl2、room_lvl3,代表建筑物的 3 个楼层。每个级别都有 20++ 个房间。所以每个 table 房间都有 20++ 行代表该级别的房间。
我需要删除 table 中除主键(房间号)之外的所有属性,或者将除主键之外的所有内容更新为空值。
有什么问题可以运行吗?
您可以通过以下操作将值设置为 NULL
:
update room_lvl1
set col1 = NULL,
col2 = NULL,
. . .;
其中 col1
等是非主键列。
想做这件事似乎真的很奇怪。您可以清空表格:
truncate table room_lvl1;
这将删除所有行。
您可以保存、截断并重新插入:
create table temp_room_lvl1 as select * from room_lvl1;
truncate table room_lvl1;
insert into room_lvl1(pk)
select pk from temp_room_lvl1;
假设我有一个包含 3 table 个房间的数据库:room_lvl1、room_lvl2、room_lvl3,代表建筑物的 3 个楼层。每个级别都有 20++ 个房间。所以每个 table 房间都有 20++ 行代表该级别的房间。
我需要删除 table 中除主键(房间号)之外的所有属性,或者将除主键之外的所有内容更新为空值。
有什么问题可以运行吗?
您可以通过以下操作将值设置为 NULL
:
update room_lvl1
set col1 = NULL,
col2 = NULL,
. . .;
其中 col1
等是非主键列。
想做这件事似乎真的很奇怪。您可以清空表格:
truncate table room_lvl1;
这将删除所有行。
您可以保存、截断并重新插入:
create table temp_room_lvl1 as select * from room_lvl1;
truncate table room_lvl1;
insert into room_lvl1(pk)
select pk from temp_room_lvl1;