使用特定选项在mySQL中创建新表
我刚开始学习mySQL,我想知道这个主题的疑问是什么:使用特定选项在mySQL中创建新表,mysql,flask,Mysql,Flask,我刚开始学习mySQL,我想知道这个主题的疑问是什么: task table •task_id (mandatory not null) •title (mandatory not null) •begin (optional value when creating a task, current date by default) •end (optional value when creating a task, empty by default) •status (not started b
task table
•task_id (mandatory not null)
•title (mandatory not null)
•begin (optional value when creating a task, current date by default)
•end (optional value when creating a task, empty by default)
•status (not started by default /in progress/done)
我已经试过了:
CREATE TABLE task (
-> task_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
-> title VARCHAR(50) NOT NULL,
-> begin ???,
->end ???,
->status (I guess I need an ENUM)
谢谢你的帮助。是的,你就快到了 begin必须定义为DATE,但当前的_日期仅在MySQL 8中有效 状态必须定义为枚举 您必须将主键添加到task_id,否则MySQL不喜欢它
CREATE TABLE task (
task_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
begin DATE DEFAULT (CURRENT_DATE),
end DATE DEFAULT NULL,
Status ENUM('not started', 'in progress', 'done') DEFAULT 'not started'
)
是的,你快到了 begin必须定义为DATE,但当前的_日期仅在MySQL 8中有效 状态必须定义为枚举 您必须将主键添加到task_id,否则MySQL不喜欢它
CREATE TABLE task (
task_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
begin DATE DEFAULT (CURRENT_DATE),
end DATE DEFAULT NULL,
Status ENUM('not started', 'in progress', 'done') DEFAULT 'not started'
)
一个稍微灵活一点的解决方案(一些框架不喜欢
enum
类型)可能是将status
更改为status\u id
,然后创建一个单独的查找表来存储status\u id
s和status
值。他正在做一个教程,规范化可能会在以后进行,非常感谢您的帮助,伙计们!祝你度过愉快的一天,并保持安全;)请@qsan我的答案有问题吗?一个稍微灵活一点的解决方案(一些框架不喜欢enum
类型)可能是将status
更改为status\u id
,然后创建一个单独的查找表来存储status\u id
s和status
值。他正在做一个教程,正常化可能会在以后到来。非常感谢你们的帮助,伙计们!祝你度过愉快的一天,并保持安全;)请问@qsan我的答案有问题吗?