Google AdSense (text)

hidden logo stop

Moving

바보 같은 이글루스 광고가 싫어서,
새 보금자리(http://blog.leocat.kr/)로 이사감.

[MySQL] datetime column에 default 지정하기 Computer & Program


테이블에는 default 값을 설정해줘서 insert 시에 지정해 주지 않아도 자동으로 설정할 수 있다. 귀찮게 모든 필드의 값을 설정하지 않아도 된다. 하지만 datetime의 경우는 default로 지정해 주는 값이 예약어로 정해져 있다. (지금까지 여태 몰랐어 TㅅT 매번 insert 문에 now() 적어줬는데..)

default 외에 row가 수정될 때 마다 값을 바꾸고 싶으면 on update를 사용하면 된다.

mysql> CREATE TABLE test (
-> name VARCHAR(20),
-> regdate DATETIME DEFAULT CURRENT_TIMESTAMP,
-> moddate DATETIME ON UPDATE CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO test (name) VALUES ('user1');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM test;
+-------+---------------------+---------+
| name | regdate | moddate |
+-------+---------------------+---------+
| user1 | 2014-03-29 21:30:19 | NULL |
+-------+---------------------+---------+
1 row in set (0.00 sec)

mysql> UPDATE test SET name='user2' WHERE name='user1';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT * FROM test;
+-------+---------------------+---------------------+
| name | regdate | moddate |
+-------+---------------------+---------------------+
| user2 | 2014-03-29 21:30:19 | 2014-03-29 21:31:22 |
+-------+---------------------+---------------------+
1 row in set (0.00 sec)

mysql>


처음 insert할 때 moddate도 값을 넣고 싶으면 regdate처럼 DEFAULT를 주면 된다.
CREATE TABLE test (
-> name VARCHAR(20),
-> regdate DATETIME DEFAULT CURRENT_TIMESTAMP,
-> moddate DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO test (name) VALUES ('user1');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test;
+-------+---------------------+---------------------+
| name | regdate | moddate |
+-------+---------------------+---------------------+
| user1 | 2014-03-29 21:36:08 | 2014-03-29 21:36:08 |
+-------+---------------------+---------------------+
1 row in set (0.00 sec)

mysql>


Datetime Column Type에 기본값 기정하기 - Joy Coding - Hans Wiki에 따르면 MySQL 5.6.5 이상 버전에서 지원한다고 한다.

- 참고
Datetime Column Type에 기본값 기정하기 - Joy Coding - Hans Wiki

1 2 3 4 5 6 7 8 9 10 다음

Google AdSense (text/image)