我了解如何使用MariaDB(支持与MySQL相同的语法(添加生成的列,并且已经使用简单的算术运算对该表进行了添加。然而,当我尝试使用DATE_SUB函数时,我会得到语法错误:
SQL Error [1064] [42000]: (conn=28594) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WEEKS)) STORED' at line 3
我使用的代码是:
ALTER TABLE `ExampleTable`
ADD COLUMN `DOB` DATE
AS (DATE_SUB (`DateExpected`, INTERVAL `Age` WEEKS)) STORED;
我想根据DateExpected和Age值计算DOB。
从CREATE TABLE:
`DateExpected` date DEFAULT NULL,
`Age` int(11) DEFAULT NULL,
替换为:
AS (DATE_SUB('1998-01-02', INTERVAL 31 DAY) STORED;
给出了类似的错误:
SQL Error [1064] [42000]: (conn=28594) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'STORED' at line 3
但替换为:
AS (`DateExpected`) STORED;
在用DateExpected中的值填充DOB列时效果很好,所以我认为这与DATE_SUB语句有关。
你可以做:
ALTER TABLE `ExampleTable`
ADD COLUMN `DOB` DATE
AS (`DateExpected` - INTERVAL `Age` WEEK) STORED;