我有一个我开始的代码,但根据我的错误,我要弄清楚我必须将默认值定义为垂直的部分。我尝试在我的书中查找它并没有提到垂直默认值,甚至没有为默认值添加值。例如,它表示email_frequency的默认值为15。我觉得这是一个简单的语法错误,但我无法在本书的任何地方找到解释如何定义默认列的信息。
我将附加预期的输出,然后附上我到目前为止编写的错误代码。
预期答案:
+-----------------+---------------------+------+-----+----------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+----------+-------+
| user_id | int(7) | NO | | NULL | |
| email_frequency | tinyint(2) unsigned | YES | | 15 | |
| layout | varchar(70) | YES | | vertical | |
| updated_at | datetime | YES | | NULL | |
+-----------------+---------------------+------+-----+----------+-------+
我到目前为止的代码:
CREATE TABLE settings (
user_id INT(7) NOT NULL,
email_frequency TINYINT(2) UNSIGNED DEFAULT 15 NULL,
layout VARCHAR(70) DEFAULT VERTICAL NULL,
updated_at YYYY-MM-DD HH:MI:SS NULL
);
错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'VER
TICAL NULL,
updated_at YYYY-MM-DD HH:MI:SS NULL
)' at line 4
答案 0 :(得分:0)
这里有一些问题:
'
),
)
updated_at
的数据类型应为datetime
所以:
CREATE TABLE settings (
user_id INT(7) NOT NULL,
email_frequency TINYINT(2) UNSIGNED DEFAULT 15 NULL,
layout VARCHAR(70) DEFAULT 'VERTICAL' NULL,
updated_at DATETIME NULL
);