如何将MySQL中的列默认值分配给另一列的值?

时间:2009-03-18 22:55:45

标签: mysql default alter

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

4 个答案:

答案 0 :(得分:6)

从MySQL 5.0.2开始,您可以编写链接到TRIGGER的存储过程,每次插入行时都可以检查新列,如果没有值,则自动将其他列的值复制到新列中是为新专栏提供的。

答案 1 :(得分:2)

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

如果这是你想要做的,那么带有存储过程的触发器就是你要去的地方。

答案 2 :(得分:2)

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

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

    ALTER TABLE table_name ADD new_column_name VARCHAR(60);
    
  2. 2:此命令用于将数据从旧列名复制到新列名。

       UPDATE table_name SET new_column_name = old_column_name;
    

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

       ALTER TABLE table_name DROP COLUMN old_column_name;
    

答案 3 :(得分:1)

创建一个视图,您可以选择相同的列两次并给它指定不同的名称,然后应用程序可以使用该视图而不是直接使用该表。