I got a table with some rows
For example:
DROP TABLE IF EXISTS test_t; CREATE TABLE test_t( test_id serial PRIMARY KEY, test_name VARCHAR (50) UNIQUE NOT NULL ); INSERT INTO test_t (test_id, test_name) VALUES (1, 'a'); INSERT INTO test_t (test_id, test_name) VALUES (2, 'b'); INSERT INTO test_t (test_id, test_name) VALUES (3, 'c'); INSERT INTO test_t (test_id, test_name) VALUES (4, 'd'); SELECT * FROM test_t;
Them i load a half of rows
SELECT * FROM test_t LIMIT 2;
After that i need to load all other rows, but all what i know about previous operation is that i load only 2 rows
So i got only the number of already loaded rows = 2
So know i got a number or rows from previous loading, but not the values of loaded rows
and i want to load all the last rows
Can i do that with such a query?
SELECT * FROM test_t OFFSET 2;
As i see know, in PGAdmin, when i run this query all the time i get the same result. Wont it return some day an another result? Some random rows, for example?
This is a little example, in fact i got a big table with 800_000_000 values, and i load half of them, it spend many days, and now i want to stop loading, stop project, update code and continue loading from this table, but i dont want to load it again from start, i want to load only another half of table, and all i know is the number of already loaded rows
Is the query:
SELECT * FROM test_t OFFSET 2;
Suit for such a case?
Advertisement
Answer
You can try:
select * from table_name offset 100000000
But better use ORDER BY not to get random values in result
select * from table_name ORDER BY some_column offset 100000000