Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.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 alter table,其值基于其他字段_Mysql_Database Design_Alter - Fatal编程技术网

mysql alter table,其值基于其他字段

mysql alter table,其值基于其他字段,mysql,database-design,alter,Mysql,Database Design,Alter,我的表中有dateOfbirth字段,我需要添加新的字段年龄,它基于dateOfbirth字段w/c,我是否需要计算它们的年龄? 是否可以更改表格并根据其他字段设置字段值?您可以使用altertable添加新列。然后使用UPDATE根据您的dateOfBirth字段更新该列。您需要的是一个计算列,该列将在dateOfBirth更新时自动更新。不幸的是,您的选择是: 如上所述创建一个视图 创建一个普通年龄列,并通过向原始表添加触发器来维护其值,当dateOfBirth列中的值发生更改时,该触发器

我的表中有dateOfbirth字段,我需要添加新的字段年龄,它基于dateOfbirth字段w/c,我是否需要计算它们的年龄?

是否可以更改表格并根据其他字段设置字段值?

您可以使用
alter
table添加新列。然后使用
UPDATE
根据您的dateOfBirth字段更新该列。

您需要的是一个计算列,该列将在dateOfBirth更新时自动更新。不幸的是,您的选择是:

  • 如上所述创建一个视图
  • 创建一个普通年龄列,并通过向原始表添加触发器来维护其值,当dateOfBirth列中的值发生更改时,该触发器将不断重新计算年龄列中的值
  • 通过向查询中添加附加列来计算查询数据时的年龄
  • (最佳情况,因为它减少了数据库上的负载)应用程序中的计算年龄

不建议添加列年龄,因为您将始终每年更新它,对吗?所以最好不要这样。opo/yes kuya john,但我需要计算它们的年龄,以便使用sphinx数据库索引。因此不可能使用值进行更改?根据alter-noyes的语法判断。除非运行更新stmt,否则它的值将过时。为什么数据库要存储年龄,因为年龄仅仅取决于出生日期和now(),所以很容易出错。应立即从选定stmt或视图返回年龄。明白了吗?假设你运行了更新stmt。明天是他的生日。您多久运行一次更新stmt。你的代码中断了。除了视图中的一个计算列或一个直接选择列之外,不应该有任何列说明他们的年龄是多少,而是说明你在做什么,不断运行cron作业来更新年龄。。。坚果