How do I rename a column in a database table using SQL?

前端 未结 11 1688
时光说笑
时光说笑 2020-12-12 18:25

If I wish to simply rename a column (not change its type or constraints, just its name) in an SQL database using SQL, how do I do that? Or is it not possible?

This

11条回答
  •  佛祖请我去吃肉
    2020-12-12 19:03

    Unfortunately, for a database independent solution, you will need to know everything about the column. If it is used in other tables as a foreign key, they will need to be modified as well.

    ALTER TABLE MyTable ADD MyNewColumn OLD_COLUMN_TYPE;
    UPDATE MyTable SET MyNewColumn = MyOldColumn;
    -- add all necessary triggers and constraints to the new column...
    -- update all foreign key usages to point to the new column...
    ALTER TABLE MyTable DROP COLUMN MyOldColumn;
    

    For the very simplest of cases (no constraints, triggers, indexes or keys), it will take the above 3 lines. For anything more complicated it can get very messy as you fill in the missing parts.

    However, as mentioned above, there are simpler database specific methods if you know which database you need to modify ahead of time.

提交回复
热议问题