我有一个关于 Heroku 的数据库。字段会自动填充日期。我尝试使用current_timestamp,但似乎不起作用。
这是数据库的架构。
drop table if exists users;
create table users (
id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name varchar,
email varchar,
username varchar,
password varchar,
register_date CURRENT_TIMESTAMP() not null
);
Run Code Online (Sandbox Code Playgroud)
这是查询:
cur.execute("INSERT INTO users(name, email, username, password) VALUES(%s, %s, %s, %s)", (name, email, username, password))
Run Code Online (Sandbox Code Playgroud)
这是错误:
ERROR: syntax error at or near "CURRENT_TIMESTAMP"
LINE 7: register_date CURRENT_TIMESTAMP() not null
Run Code Online (Sandbox Code Playgroud)
postgresql无法识别CURRENT_TIMESTAMP()这就是为什么你必须使用CURRENT_TIMESTAMP(不带括号)。接下来创建表查询一定适合您:
create table users (
id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name varchar,
email varchar,
username varchar,
password varchar,
register_date timestamp default CURRENT_TIMESTAMP not null
);
Run Code Online (Sandbox Code Playgroud)
要检查它是否有效,只需从 postgres REPL 运行下一个查询:
insert into users(name, email, username, password)
values('n', 'e@e.com', 'un', 'pwd');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3822 次 |
| 最近记录: |