· 8 years ago · May 07, 2018, 02:00 PM
1CREATE TABLE IF NOT EXISTS mytable (
2 id INT NOT NULL AUTO_INCREMENT ,
3 create_date TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00' ,
4 update_date TIMESTAMP NULL DEFAULT NOW() ON UPDATE NOW() ,
5 PRIMARY KEY (`parti_id`) )
6ENGINE = InnoDB;
7
8mysql> SELECT @@sql_mode;
9+------------+
10| @@sql_mode |
11+------------+
12| |
13+------------+
141 row in set (0.00 sec)
15
16ERROR 1067 (42000) at line xx in file: '/myschema.sql': Invalid default value for 'create_date'
17
18CREATE TABLE testing_timestamps (
19id INT NOT NULL AUTO_INCREMENT,
20pk_id INT NOT NULL,
21col1 TIMESTAMP DEFAULT 0,
22col2 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
23PRIMARY KEY(id)
24);
25--
26delimiter $$
27CREATE TRIGGER testing_timestamps_trigger
28AFTER INSERT ON testing_timestamps
29FOR EACH ROW
30BEGIN
31UPDATE testing_timestamps SET col1 = NOW() WHERE id = MAX(id);
32END;
33$$
34delimiter ;
35--
36INSERT INTO testing_timestamps (id) VALUES (0);
37
38create table sessions (
39 id integer not null,
40 created timestamp not null default 0,
41 updated timestamp not null default 0
42);
43
44delimiter //
45create trigger bifer_sessions_ts before insert on sessions for each row
46begin
47 set new.created = now();
48 set new.updated = now();
49end;
50//
51create trigger bufer_sessions_ts before update on sessions for each row
52begin
53 set new.updated = now();
54end;
55//
56delimiter ;