直接在Default中写CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,虽然会有错误提示,但是生成的SQL语句是正确的,可以得到正确的表结构。TIMESTAMP DATETIME列可以自动初始化并更新为当前日期和时间(即当前时间戳)。
一、使用datagrip,新建表,datetime字段怎么设置on update
直接在Default中写CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,虽然会有错误提示,但是生成的SQL语句是正确的,可以得到正确的表结构。TIMESTAMP DATETIME列可以自动初始化并更新为当前日期和时间(即当前时间戳)。
TIMESTAMP或 DATETIME列定义可以为默认值和自动更新值(一个而不是另一个)或两者都不指定当前时间戳,不同的列可以具有不同的自动属性组合,可以使用 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP子句指定自动属性。
使用DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP时,该列具有其默认值的当前时间戳,并自动更新为当前时间戳。
CREATE TABLE test(
ids int(11),
roomName varchar(512),
startTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
如果有DEFAULT子句但没有ON UPDATE CURRENT_TIMESTAMP子句,则该列具有给定的默认值,并且不会自动更新为当前时间戳;默认值取决于DEFAULT子句是指定 CURRENT_TIMESTAMP还是常量,使用CURRENT_TIMESTAMP,默认值为当前时间戳。
CREATE TABLE test(
ids int(11),
roomName varchar(512),
startTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
使用一个ON UPDATE CURRENT_TIMESTAMP子句和一个常量DEFAULT子句,该列将自动更新为当前时间戳,并具有给定的常量默认值。
CREATE TABLE test(
ids int(11),
roomName varchar(512),
startTime DATETIME DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
);
如果有ON UPDATE CURRENT_TIMESTAMP子句但没有DEFAULT子句,则该列会自动更新为当前时间戳,但没有默认值的当前时间戳;在这种情况下,默认值取决于类型,TIMESTAMP除非使用NULL属性定义,否则默认值为0 ,在这种情况下,默认值为NULL;DATETIME默认值NULL,使用NOT NULL属性定义时,默认值为0。
CREATE TABLE test(
ids int(11),
roomName varchar(512),
startTime TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, — default 0
endTime TIMESTAMP NULL ON UPDATE CURRENT_TIMESTAMP — default NULL
);
延伸阅读:
二、网络附加存储(NAS)
NAS指Network Area Storage,即网络附加存储。它一般是将本地的存储空间共享给其他主机使用,一般通过C/S架构实现通信。它实现的是文件级别的共享,计算机通常将共享的设别识别为一个文件系统,其文件服务器会管理锁以实现并发访问。网络文件系统,以文件模块的形式进行共享,工作在应用层上,常见的NAS有NFS和CIFS(FTP)。