Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PostgreSQL唯一地插入到数据库中_Postgresql_Database - Fatal编程技术网

通过PostgreSQL唯一地插入到数据库中

通过PostgreSQL唯一地插入到数据库中,postgresql,database,Postgresql,Database,我的桌子 question_id | title | user_id | +---------------+---------------------------------+----------------+ 它的类型是 Column | Type | Mo

我的桌子

  question_id   |              title              |      user_id   |
+---------------+---------------------------------+----------------+
它的类型是

                Column                 |            Type             |                            Modifiers                            
---------------------------------------+-----------------------------+-----------------------------------------------------------------
 question_id                           | integer                     | not null default nextval('questions_question_id_seq'::regclass)
 title                                 | character varying(256)      | 
 user_id                               | integer                     | 
我跑

我得到了一个关于使用串口的错误


如何通过PostgreSQL自动将问题添加到表中,并采用唯一的问题id?

默认值将根据数据库中的序列自动生成(序列)号。所以你可以做一个简单的:

insert into questions (title, user_id) values ('question_title', 123);
它将在问题id字段中插入一个自动递增的数字,因为**问题id\顺序**

或者,在insert子句上,也可以使用sequence,而不是使用SERIAL。但我宁愿用我建议的第一句话:

insert into questions values (nextval('questions_question_id_seq'), 'question_title', 123);
通常,您不需要指定唯一id,因为这是在服务器端完成的。您应该使用以下命令:

INSERT INTO questions (title, user_id) VALUES ('question title', 123);

自动id处理是通过“问题\u问题\u id\u顺序”来完成的,正如您在修改器部分中看到的那样。

您也可以使用

Create Table tbl_1 ( id SERIAL , name varchar(30));
您可以继续插入数据,如

insert into tbl_1(name) values('xyz');
这将自动创建id。 使用串行仅相当于序列。
您可以检查

如果表中有一列
在时间发送
,我想知道如何将时间自动添加到新列中。我不成功的尝试使用了方法
now()
和括号中的显式列名:
插入到问题(标题、用户id、当时发送的wast)值('Lorem Ipsun',123,now())
。如何将时间也添加到表中?@Masi:将was_sent_at_time列类型设置为以下类型:timestamp not null默认当前值_timestamp@Masi:听马克西姆科的。使用当前的\u时间戳值填充您在\u时间列发送的时间。:-)谢谢你们您的最后一个技巧大大简化了我的SQL查询:)
insert into tbl_1(name) values('xyz');