oce*_*800 17 mysql sql timestamp mysql-workbench
这可能是一个非常基本的问题,但我以前从未创建过一个表格TIMESTAMP()
,而且我对作为参数的内容感到困惑.例如,这里:
我只是随意放TIMESTAMP(20)
,但20
作为参数在这里表示什么?这里应该放什么?
我用谷歌搜索了这个问题,但是并没有真正想出任何东西......无论如何我是sql的新手,所以任何帮助都会非常感激,谢谢!
spe*_*593 11
编辑
从MySQL 5.6.4开始,数据类型为小数秒TIMESTAMP(n)
指定n
(0到6)精度的十进制数字.
在MySQL 5.6之前,MySQL不支持作为TIMESTAMP
数据类型的一部分存储的小数秒.
参考:https://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html
我们不需要在a上指定长度修改器TIMESTAMP
.我们可以单独指定TIMESTAMP
.
但请注意,TIMESTAMP
表中定义的第一列需要进行自动初始化和更新.例如:
create table foo (id int, ts timestamp, val varchar(2));
show create table foo;
CREATE TABLE `foo` (
`id` INT(11) DEFAULT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`val` VARCHAR(2) DEFAULT NULL
)
Run Code Online (Sandbox Code Playgroud)
数据类型后面的parens取决于数据类型是什么,但对于某些数据类型,它是一个长度修饰符.
对于某些数据类型,长度修饰符会影响可以存储的值的最大长度.例如,VARCHAR(20)
最多允许存储20个字符.并DECIMAL(10,6)
允许小数点前四位数和后六位数的数值,有效范围为-9999.999999至9999.999999.
对于其他类型,长度修饰符不会影响可以存储的值的范围.例如,INT(4)
并且INT(10)
都是整数,并且两者都可以存储允许整数数据类型的整个值范围.
在这种情况下,长度修饰符的作用仅仅是信息性的.它基本上指定了推荐的显示宽度.客户端可以利用它来确定在一行上保留多少空间以显示列中的值.客户端不必这样做,但该信息可用.
编辑
TIMESTAMP
数据类型不再接受长度修饰符.(如果你运行的是一个非常老的MySQL版本并且已被接受,它将被忽略.)
归档时间: |
|
查看次数: |
29595 次 |
最近记录: |