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;