如何将MySQL中的一列默认值分配给另一列的值?
我想在MySQL数据库中的表中添加一个新列,该列应该获得同一表中另一列的值。这可能吗?如果是这样,你怎么做?从MySQL 5.0.2开始,你可以编写一个链接到的存储过程,它可以在每次插入行时检查新列,如果没有为新列提供值,则自动将另一列的值复制到新列中。创建一个视图,您可以选择同一列两次并为其指定不同的名称,然后应用程序可以使用视图而不是直接使用表。自2012年起,mysql不支持默认设置2个时间戳列,这意味着您不能对同一个表执行“创建”和“更新”如何将MySQL中的一列默认值分配给另一列的值?,mysql,default,alter,Mysql,Default,Alter,我想在MySQL数据库中的表中添加一个新列,该列应该获得同一表中另一列的值。这可能吗?如果是这样,你怎么做?从MySQL 5.0.2开始,你可以编写一个链接到的存储过程,它可以在每次插入行时检查新列,如果没有为新列提供值,则自动将另一列的值复制到新列中。创建一个视图,您可以选择同一列两次并为其指定不同的名称,然后应用程序可以使用视图而不是直接使用表。自2012年起,mysql不支持默认设置2个时间戳列,这意味着您不能对同一个表执行“创建”和“更新” 如果这是您正在尝试执行的操作,那么使用存储的p
如果这是您正在尝试执行的操作,那么使用存储的proc的触发器就是一种方法。您可以使用以下两个命令来完成您的工作 此命令将用于在表中添加新列。记住要复制的数据类型,以便在新列中使用这些数据类型
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;
谢谢你的评论。我原本也在考虑触发器,但我想远离它们。由于这对我的当前需求不是很重要,所以我假设默认情况下在MySQL中不可能实现。再次感谢!