6

我想在 MySQL 数据库中的表中添加一个新列,该列应该获取同一个表中另一列的值。这可能吗?如果是这样,你怎么做?

4

4 回答 4

6

从 MySQL 5.0.2 开始,您可以编写一个链接到 a 的存储过程,TRIGGER该过程可以在每次插入一行时检查新列,如果没有为新列提供值,则自动将另一列的值复制到新列中。

于 2009-03-18T22:59:57.113 回答
3

您可以使用以下两个命令来完成您的工作。

  1. 此命令将用于在您的表中添加新列。记住要复制的数据类型,以便在新列中使用这些数据类型。

    ALTER TABLE table_name ADD new_column_name VARCHAR(60);
    

2:此命令将数据从旧列名复制到新列名。

   UPDATE table_name SET new_column_name = old_column_name;

然后如果要删除上一列,则可以使用以下命令

   ALTER TABLE table_name DROP COLUMN old_column_name;
于 2013-01-22T07:21:59.657 回答
2

截至 20101212 mysql 不支持默认 2 个时间戳列,这意味着您不能在同一张表上执行“创建”和“更新”。

如果这是您尝试做的事情,那么使用存储过程的触发器就是要走的路。

于 2010-12-13T06:51:15.860 回答
1

创建一个视图,您可以两次选择同一列并为其命名,然后应用程序可以使用视图而不是直接使用表。

于 2010-07-08T01:06:44.663 回答