Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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中向特定列插入随机整数_Sql_Database_Postgresql - Fatal编程技术网

如何在PostgreSQL中向特定列插入随机整数

如何在PostgreSQL中向特定列插入随机整数,sql,database,postgresql,Sql,Database,Postgresql,我在PostgreSQL中已有一个表“public.trip_info”,我在其中添加了一个新列“zone”,现在我想在该列中插入1到80之间的随机整数。因此我知道如何在PostgreSQL中生成1到80之间的随机数 SELECT floor(random() * 80 + 1)::int; 如何将其插入到所有行的列中。 我不熟悉SQL脚本。这个怎么样 update public.trip_info set zone = floor(random() * 80 + 1)::int;

我在PostgreSQL中已有一个表“public.trip_info”,我在其中添加了一个新列“zone”,现在我想在该列中插入1到80之间的随机整数。因此我知道如何在PostgreSQL中生成1到80之间的随机数

SELECT floor(random() * 80 + 1)::int;
如何将其插入到所有行的列中。 我不熟悉SQL脚本。

这个怎么样

update public.trip_info
    set zone = floor(random() * 80 + 1)::int;
这个怎么样

update public.trip_info
    set zone = floor(random() * 80 + 1)::int;

我已经有一段时间没有写博士后了。然而,对于所有基于SQL的数据库来说,这个想法几乎是一样的

为了向新列中插入随机值,必须对表进行更新

下面是一个使用MySQL的示例:

--初始创建和插入

mysql> create table t1(
    -> name varchar(20)
    -> ); 
Query OK, 0 rows affected (0.20 sec)

mysql> insert into t1 values('blah blah blah'), ('aaa'); 
Query OK, 2 rows affected (0.04 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from t1; 
+----------------+
| name           |
+----------------+
| blah blah blah |
| aaa            |
+----------------+
2 rows in set (0.00 sec)
--更改表格

mysql> alter table t1 add zone int not null;
Query OK, 0 rows affected (0.28 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select * from t1; 
+----------------+------+
| name           | zone |
+----------------+------+
| blah blah blah |    0 |
| aaa            |    0 |
+----------------+------+
2 rows in set (0.00 sec)
--更新特定列

mysql> UPDATE t1 SET zone=floor(rand()*(80+1)) WHERE name='aaa';
Query OK, 1 row affected (0.11 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from t1; 
+----------------+------+
| name           | zone |
+----------------+------+
| blah blah blah |    0 |
| aaa            |    6 |
+----------------+------+
2 rows in set (0.00 sec)
--立即更新整个表

mysql> UPDATE t1 SET zone=floor(rand()*(80+1));
Query OK, 2 rows affected (0.04 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select * from t1; 
+----------------+------+
| name           | zone |
+----------------+------+
| blah blah blah |   67 |
| aaa            |   76 |
+----------------+------+
2 rows in set (0.00 sec)

希望这对我有所帮助。我写博士后已经有一段时间了。然而,对于所有基于SQL的数据库来说,这个想法几乎是一样的

为了向新列中插入随机值,必须对表进行更新

下面是一个使用MySQL的示例:

--初始创建和插入

mysql> create table t1(
    -> name varchar(20)
    -> ); 
Query OK, 0 rows affected (0.20 sec)

mysql> insert into t1 values('blah blah blah'), ('aaa'); 
Query OK, 2 rows affected (0.04 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> select * from t1; 
+----------------+
| name           |
+----------------+
| blah blah blah |
| aaa            |
+----------------+
2 rows in set (0.00 sec)
--更改表格

mysql> alter table t1 add zone int not null;
Query OK, 0 rows affected (0.28 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select * from t1; 
+----------------+------+
| name           | zone |
+----------------+------+
| blah blah blah |    0 |
| aaa            |    0 |
+----------------+------+
2 rows in set (0.00 sec)
--更新特定列

mysql> UPDATE t1 SET zone=floor(rand()*(80+1)) WHERE name='aaa';
Query OK, 1 row affected (0.11 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from t1; 
+----------------+------+
| name           | zone |
+----------------+------+
| blah blah blah |    0 |
| aaa            |    6 |
+----------------+------+
2 rows in set (0.00 sec)
--立即更新整个表

mysql> UPDATE t1 SET zone=floor(rand()*(80+1));
Query OK, 2 rows affected (0.04 sec)
Rows matched: 2  Changed: 2  Warnings: 0

mysql> select * from t1; 
+----------------+------+
| name           | zone |
+----------------+------+
| blah blah blah |   67 |
| aaa            |   76 |
+----------------+------+
2 rows in set (0.00 sec)

希望这有帮助

谢谢你的详细解释。确实有帮助。谢谢你的详细解释。确实有帮助。如何生成范围内的随机数,例如(40,80)update public.trip_info set zone=floor(random()*80+40)::int;这还不到40sometimes@RKR . . . 这个问题具体是关于1到80之间的数字。如果您还有其他问题,您应该作为问题而不是在评论中提问。如何生成范围内的随机数,例如(40,80)update public.trip_info set zone=floor(random()*80+40)::int;这还不到40sometimes@RKR . . . 这个问题具体是关于1到80之间的数字。如果你还有其他问题,你应该作为问题而不是评论提问。