Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将MySQL中的一列默认值分配给另一列的值?_Mysql_Default_Alter - Fatal编程技术网

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

如何将MySQL中的一列默认值分配给另一列的值?,mysql,default,alter,Mysql,Default,Alter,我想在MySQL数据库中的表中添加一个新列,该列应该获得同一表中另一列的值。这可能吗?如果是这样,你怎么做?从MySQL 5.0.2开始,你可以编写一个链接到的存储过程,它可以在每次插入行时检查新列,如果没有为新列提供值,则自动将另一列的值复制到新列中。创建一个视图,您可以选择同一列两次并为其指定不同的名称,然后应用程序可以使用视图而不是直接使用表。自2012年起,mysql不支持默认设置2个时间戳列,这意味着您不能对同一个表执行“创建”和“更新” 如果这是您正在尝试执行的操作,那么使用存储的p

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

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

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

自2012年起,mysql不支持默认设置2个时间戳列,这意味着您不能对同一个表执行“创建”和“更新”


如果这是您正在尝试执行的操作,那么使用存储的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中不可能实现。再次感谢!