質問編集履歴

4

方法2はだめだったため削除

2020/06/25 11:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -5,8 +5,6 @@
5
5
  一回もNEXTVALしていない状態では、取得することができず、DBを開いて、insertが走らないと取得することができません(方法1)
6
6
 
7
7
 
8
-
9
- 方法2のSQLなら、うまくいくのですが、無理やりすぎる気が、
10
8
 
11
9
  他に何か方法はないものでしょうか?
12
10
 
@@ -20,14 +18,6 @@
20
18
 
21
19
  SELECT CURRVAL(pg_get_serial_sequence('table_name','id_col_name')
22
20
 
23
-
24
-
25
- #方法2
26
-
27
- # 取得できるが、無理やり感がある
28
-
29
- SELECT SETVAL('table_name_id_seq', NEXTVAL('table_name_id_seq')-1);
30
-
31
21
  ```
32
22
 
33
23
 

3

タグ修正

2020/06/25 11:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
File without changes

2

方法2を追記

2020/06/25 11:00

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,11 @@
2
2
 
3
3
  一応、CURRVALで取得できるというような記述はあったのですが、
4
4
 
5
- 一回もNEXTVALしていない状態では、取得することができず、DBを開いて、insertが走らないと取得することができません
5
+ 一回もNEXTVALしていない状態では、取得することができず、DBを開いて、insertが走らないと取得することができません(方法1)
6
+
7
+
8
+
9
+ 方法2のSQLなら、うまくいくのですが、無理やりすぎる気が、
6
10
 
7
11
  他に何か方法はないものでしょうか?
8
12
 
@@ -10,7 +14,19 @@
10
14
 
11
15
  ```SQL
12
16
 
17
+ # 方法1
18
+
19
+ # INSERT(NEXTVAL)が一度も走っていない場合は取得できない
20
+
13
21
  SELECT CURRVAL(pg_get_serial_sequence('table_name','id_col_name')
22
+
23
+
24
+
25
+ #方法2
26
+
27
+ # 取得できるが、無理やり感がある
28
+
29
+ SELECT SETVAL('table_name_id_seq', NEXTVAL('table_name_id_seq')-1);
14
30
 
15
31
  ```
16
32
 

1

追記

2020/06/25 10:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -13,3 +13,7 @@
13
13
  SELECT CURRVAL(pg_get_serial_sequence('table_name','id_col_name')
14
14
 
15
15
  ```
16
+
17
+
18
+
19
+ python SQLAlchemyを使用しています。