• DROP COLUMN
    • 语法图
    • 示例
    • MySQL 兼容性
    • 另请参阅

    DROP COLUMN

    DROP COLUMN 语句用于从指定的表中删除列。在 TiDB 中,COLUMN 为在线操作,不会阻塞表中的数据读写。

    语法图

    AlterTableStmt:

    AlterTableStmt

    AlterTableSpec:

    AlterTableSpec

    ColumnKeywordOpt:

    ColumnKeywordOpt

    ColumnName:

    ColumnName

    示例

    1. mysql> CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY auto_increment, col1 INT NOT NULL, col2 INT NOT NULL);
    2. Query OK, 0 rows affected (0.12 sec)
    3. mysql> INSERT INTO t1 (col1,col2) VALUES (1,1),(2,2),(3,3),(4,4),(5,5);
    4. Query OK, 5 rows affected (0.02 sec)
    5. Records: 5 Duplicates: 0 Warnings: 0
    6. mysql> SELECT * FROM t1;
    7. +----+------+------+
    8. | id | col1 | col2 |
    9. +----+------+------+
    10. | 1 | 1 | 1 |
    11. | 2 | 2 | 2 |
    12. | 3 | 3 | 3 |
    13. | 4 | 4 | 4 |
    14. | 5 | 5 | 5 |
    15. +----+------+------+
    16. 5 rows in set (0.01 sec)
    17. mysql> ALTER TABLE t1 DROP COLUMN col1, DROP COLUMN col2;
    18. ERROR 1105 (HY000): can't run multi schema change
    19. mysql> SELECT * FROM t1;
    20. +----+------+------+
    21. | id | col1 | col2 |
    22. +----+------+------+
    23. | 1 | 1 | 1 |
    24. | 2 | 2 | 2 |
    25. | 3 | 3 | 3 |
    26. | 4 | 4 | 4 |
    27. | 5 | 5 | 5 |
    28. +----+------+------+
    29. 5 rows in set (0.00 sec)
    30. mysql> ALTER TABLE t1 DROP COLUMN col1;
    31. Query OK, 0 rows affected (0.27 sec)
    32. mysql> SELECT * FROM t1;
    33. +----+------+
    34. | id | col2 |
    35. +----+------+
    36. | 1 | 1 |
    37. | 2 | 2 |
    38. | 3 | 3 |
    39. | 4 | 4 |
    40. | 5 | 5 |
    41. +----+------+
    42. 5 rows in set (0.00 sec)

    MySQL 兼容性

    • 不支持使用相同语句删除多个列。

    另请参阅

    • ADD COLUMN
    • SHOW CREATE TABLE
    • CREATE TABLE