mysql中有一些特性,但postgresql中没有。1.创建一个表并给列一个默认值2.在表中插入一个空值。在mysql中,它将插入默认值;在postgresql中,它将插入空值;我怎样才能让postgresql像mysql那样做呢。我在更改dbms时发现了这个问题。我的应用程序是java代码。orm是hibernate5.1.0。我改变了数据库管理系统,然后许多默认列是不工作的。
mysql数据库
drop table table1;
CREATE TABLE table1
(
column_1 int PRIMARY KEY AUTO_INCREMENT,
column_2 timestamp DEFAULT current_timestamp
);
insert into table1(column_2) values(null);
select * from table1;
结果
| column_1 | column_2 |
+----------+---------------------+
| 1 | 2018-04-24 10:00:18 |
pgsql语言
drop table table2;
CREATE TABLE table2
(
column_1 serial PRIMARY KEY,
column_2 timestamp DEFAULT current_timestamp
);
insert into table2(column_2) values (null);
select * from table2;
结果
column_1 | column_2
----------+----------
1 |
2条答案
按热度按时间xvw2m8pv1#
这将插入null。
当插入且不包括具有默认值的列时,将插入其默认值。我想你有一个序列可以用来做这个。
h7wcgrx32#
我想如果你想在插入时得到默认值,我建议你3种方法:
别把它放在你的问题里。
使用关键字
DEFAULT
作为insert into table2(column_2) values (DEFAULT);
写入触发器并在插入时处理数据。希望我的回答能对你有所帮助。