【问题标题】:sql query to delete all attribute except primary keysql查询删除除主键以外的所有属性
【发布时间】:2016-10-27 02:36:27
【问题描述】:

假设我有一个包含 3 个房间表的数据库:room_lvl1、room_lvl2、room_lvl3,它们代表建筑物的 3 个楼层。每个级别都有 20++ 个房间。所以每个房间表都有 20++ 行代表该级别的房间。

我需要删除表中除主键(即房间号)之外的所有属性,或者将除主键之外的所有内容更新为空值。

我可以运行任何查询吗?

【问题讨论】:

  • 你能提供样本数据和想要的结果吗?我不确定你真正想要完成什么。

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


【解决方案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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2011-01-21
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2012-09-05
    • 2011-11-20
    相关资源
    最近更新 更多