回答

收藏

如何使用列时间戳默认为current_date创建mysql表?

技术问答 技术问答 286 人阅读 | 0 人回复 | 2023-09-14

我需要在CURRENT_DATE()列上使用默认值创建mysql表
1 a" q: `4 [3 A( Z6 Y8 O我尝试
* e# Q  a# m- ?2 H& J# {# h5 u4 RDROP TABLE IF EXISTS `visitors`;! r# c$ L7 w& S5 c" X
CREATE TABLE `visitors` (
, d0 x2 u9 Z' a2 \2 I1 S$ F$ G  D  `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
! \! i5 A  v1 Z! V& X5 W8 \" |  `ip` VARCHAR(32) NOT NULL,% j, k, Z, W1 e- n2 v  l3 u
  `browser` VARCHAR(500) NOT NULL,
" u$ }' K5 D. Z8 H  ^" S  `version` VARCHAR(500) NOT NULL,, p$ C( _: j9 x$ w2 p; b
  `platform` ENUM('w','l','m') NOT NULL,
: r5 q: s4 I6 \7 A7 K1 G8 P6 Q  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_DATE(),8 H9 e& W# \/ {$ p& a
  PRIMARY KEY (`id`),
4 r4 n) ~: p0 }$ r  UNIQUE KEY `person` (`ip`,`date`)
3 z- G# G. B0 R) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;, [; P5 Q3 Q1 {
但它写一个错误, j" q5 `7 C7 t6 `# r5 x. i0 p! d
Query: CREATE TABLE `visitors` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `ip` VARCHAR(32) NOT NULL, `browser` VARCHAR(500) NO.... i! B& x2 J& {9 J
Error Code: 10642 U- `/ j- M; l
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 'CURRENT_DATE() NOT NULL,' r4 h8 ?' p8 U4 Q& P5 R# r0 F
  PRIMARY KEY (`id`),
( D" `1 L& ]( m6 V$ H  UNIQUE KEY `person` (`ip`,`date`)8 t" q1 t) _4 S7 B
) ENGINE=INNODB AUTO_INCREMENT=1' at line 7* Q  c6 C: J4 u2 x
Execution Time : 0 sec
' _, H, R0 `' w  gTransfer Time  : 0 sec
5 Q/ g8 c+ B2 J5 |Total Time     : 0.063 sec2 T2 ?9 x' d1 O6 Z: T
问题是什么?" C, ~' G' l1 @4 u- \) }. _& n8 H
我只需要唯一日期而不需要全职信息…
% C0 W2 Z$ ~1 |) J5 F  V你能帮助我吗?$ g/ \4 J$ c4 H* @) i
               
" C. h5 o2 j2 a: H( C解决方案:
# H! X. r( C3 }  J& q3 q               
2 o0 \* f3 c# B2 R" H4 F
$ P  d- C1 Q( r( f2 l) z0 s$ S7 s) `  ?* C- @$ E, h- j( q) B. T
                使用 CURRENT_TIMESTAMP 函数而不是 CURRENT_DATE() 函数
! U5 o$ W( }( C5 D/ h试试这个:5 b% I4 m# a' P! s
DROP TABLE IF EXISTS `visitors`;, f9 N5 ]1 v8 o2 p% z9 O1 \- H
CREATE TABLE `visitors` (8 x3 [& P6 d( K; v6 b
  `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
/ m0 N' N7 o0 S  `ip` VARCHAR(32) NOT NULL,
. m9 a8 O+ J" o" k, W) e: c6 i  `browser` VARCHAR(500) NOT NULL,, `1 g5 Y, N0 h) ^; ^
  `version` VARCHAR(500) NOT NULL,
4 D  p& m* y$ t: A, _, h+ ?: H7 }, k  `platform` ENUM('w','l','m') NOT NULL,' I% x7 e" U0 r8 B9 R$ t1 _
  `date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
8 i8 {( C. Y5 N, H. X, b: S% g  PRIMARY KEY (`id`),
  f$ y- W* T( o# b* C0 i  UNIQUE KEY `person` (`ip`,`date`). J1 ]/ K( Q) a* ^
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则