sql查询删除除主键之外的所有属性

时间:2016-10-27 02:36:27

标签: mysql sql database primary-key sql-delete

假设我有一个包含3个房间表的数据库:room_lvl1,room_lvl2,room_lvl3,它代表建筑物中的3个等级。每个级别有20个++房间。因此,每个房间的桌子都有20个++行,代表该级别的房间。

我需要删除表中除主键之外的所有属性,除了主键之外,还要将所有属性更新为空值。

我可以运行任何查询吗?

1 个答案:

答案 0 :(得分:1)

您可以通过执行以下操作将值设置为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;