Size: a a a

pgsql – PostgreSQL

2020 December 24

IZ

Ilia Zviagin in pgsql – PostgreSQL
Ты МОЖЕШЬ использовать такие названия, но их придётся квотировать — заключать в особые кавычки всё время, в PG, если я не ошибаюсь, "token" — но ещё надо писать всё время с учётом регистра, и ещё куча гемора.

ЛУЧШЕ ВСЕГО не использовать такие имена
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
Ну и проверить надо в доке, я могу быть неправ
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
Ilia Zviagin
Ты МОЖЕШЬ использовать такие названия, но их придётся квотировать — заключать в особые кавычки всё время, в PG, если я не ошибаюсь, "token" — но ещё надо писать всё время с учётом регистра, и ещё куча гемора.

ЛУЧШЕ ВСЕГО не использовать такие имена
сейчас сходу поменяю ив тестах тоже, дабы отпала сия гипотеза. или же решила проблему )
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
Slava Pinchuk
`CREATE TABLE IF NOT EXISTS token (
                       id SERIAL PRIMARY KEY,
                       PaymentToken_id TEXT,
                       PaymentToken_creator TEXT,
                       PaymentToken_expdate TEXT,
                       PaymentToken_type TEXT,
                       PaymentToken_status TEXT,
                       PaymentToken_creatorStatus TEXT,
                       PaymentToken_wallet TEXT,
                       PaymentToken_deviceType TEXT,
                       PaymentToken_lang TEXT,
                       PaymentToken_deviceTelNum TEXT,
                       PaymentToken_deviceIp TEXT,
                       PaymentToken_deviceId TEXT,
                       PaymentToken_deviceName TEXT,
                       PaymentToken_activationCode TEXT,
                       PaymentToken_activationExpiry TEXT,
                       PaymentToken_activationMethod TEXT,
                       PaymentToken_activationMethodData TEXT
 );
Ну и очень странная таблица у тебя — всё TEXT
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
Ilia Zviagin
Ну и очень странная таблица у тебя — всё TEXT
первая )
источник

SB

Sergey Bezrukov in pgsql – PostgreSQL
А зачем у названий полей такие префиксы - это следствие использование какого-то ORM ?
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
 CREATE TABLE IF NOT EXISTS PaymentToken (
                       id SERIAL PRIMARY KEY,
                       PaymentToken_id TEXT,
                       PaymentToken_creator TEXT,
                       PaymentToken_expdate TEXT,
                       PaymentToken_type TEXT,
                       PaymentToken_status TEXT,
                       PaymentToken_creatorStatus TEXT,
                       PaymentToken_wallet TEXT,
                       PaymentToken_deviceType TEXT,
                       PaymentToken_lang TEXT,
                       PaymentToken_deviceTelNum TEXT,
                       PaymentToken_deviceIp TEXT,
                       PaymentToken_deviceId TEXT,
                       PaymentToken_deviceName TEXT,
                       PaymentToken_activationCode TEXT,
                       PaymentToken_activationExpiry TEXT,
                       PaymentToken_activationMethod TEXT,
                       PaymentToken_activationMethodData TEXT
 );


поменял название, опят та же фигня
 [ERROR] CreateTable() failed. Error:   pq: syntax error at or near "PaymentToken"

может спецсимвол какой в проблеме, попробуй написат ьтаблицу заново
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
Sergey Bezrukov
А зачем у названий полей такие префиксы - это следствие использование какого-то ORM ?
это запись результатов работы другого сервиса, там так принято пистаь эти поля. Менять названия не стал оперативно можно понять что это
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
1. Создал маленькую таблицу, ошибка ушла, значит реально какой-то специфический пробел скопировал

 CREATE TABLE IF NOT EXISTS Payment (
   id SERIAL PRIMARY KEY,
   PaymentToken_id TEXT
 );

2. написал тест на инсерт
   INSERT INTO PAYMENTTOKEN(
         PaymentToken_id,
         VALUES($1)
   
    RETURNING id
     

пишет что в этом инсерте еррор syntax error at or near "("
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
       INSERT INTO PAYMENTTOKEN(
         PaymentToken_id,
         )
         VALUES($1)
         RETURNING id
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
та же ошибка syntax error at or near "("
источник

SB

Sergey Bezrukov in pgsql – PostgreSQL
Slava Pinchuk
       INSERT INTO PAYMENTTOKEN(
         PaymentToken_id,
         )
         VALUES($1)
         RETURNING id
это на каком языке-то написано?  и со скобками косяк, и таблица-то как называется, вверху вроде payment а тут paymennttoken
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
Sergey Bezrukov
это на каком языке-то написано?  и со скобками косяк, и таблица-то как называется, вверху вроде payment а тут paymennttoken
походу пора домой ) уже тупые ошибки делаю ..
источник

SB

Sergey Bezrukov in pgsql – PostgreSQL
возьмите любой sql редактор, в нём потренируйтесь, потом уже в программу переносите
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
Sergey Bezrukov
возьмите любой sql редактор, в нём потренируйтесь, потом уже в программу переносите
спасибо
источник

SP

Slava Pinchuk in pgsql – PostgreSQL
простите за терроризм. Просто бек сам пишу..
 INSERT INTO PAYMENT (
         PaymentToken_id,
         )
         VALUES($1)
         RETURNING id
     `,


огонь, да тупо таблица не та

Шикарного Вам вечера
Всё работает
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
Slava Pinchuk
1. Создал маленькую таблицу, ошибка ушла, значит реально какой-то специфический пробел скопировал

 CREATE TABLE IF NOT EXISTS Payment (
   id SERIAL PRIMARY KEY,
   PaymentToken_id TEXT
 );

2. написал тест на инсерт
   INSERT INTO PAYMENTTOKEN(
         PaymentToken_id,
         VALUES($1)
   
    RETURNING id
     

пишет что в этом инсерте еррор syntax error at or near "("
INSERT INTO PAYMENTTOKEN(    PaymentToken_id )   VALUES( ... )
источник

Aliaksei Қауіпсіздік... in pgsql – PostgreSQL
Почему один запрос использует индексы а второй нет? sla=# explain delete from bmx.tsld_rrddata_tos_0 where f_timestamp > 1600226278 ;
                                                      QUERY PLAN                                                        
-------------------------------------------------------------------------------------------------------------------------
Delete on tsld_rrddata_tos_0  (cost=0.57..70254.28 rows=1190726 width=6)
  ->  Index Scan using tsld_rrddata_tos_0_f_timestamp on tsld_rrddata_tos_0  (cost=0.57..70254.28 rows=1190726 width=6)
        Index Cond: (f_timestamp > 1600226278)
(3 rows)

sla=# explain delete from bmx.tsld_rrddata_tos_0 where f_timestamp < 1600226278 ;
                                     QUERY PLAN                                      
---------------------------------------------------------------------------------------
Delete on tsld_rrddata_tos_0  (cost=0.00..16081852.60 rows=372578842 width=6)
  ->  Seq Scan on tsld_rrddata_tos_0  (cost=0.00..16081852.60 rows=372578842 width=6)
        Filter: (f_timestamp < 1600226278)
(3 rows)
источник

Aliaksei Қауіпсіздік... in pgsql – PostgreSQL
отличия только '>' vs '<'
источник

IZ

Ilia Zviagin in pgsql – PostgreSQL
Aliaksei Қауіпсіздік сертификаты
Почему один запрос использует индексы а второй нет? sla=# explain delete from bmx.tsld_rrddata_tos_0 where f_timestamp > 1600226278 ;
                                                      QUERY PLAN                                                        
-------------------------------------------------------------------------------------------------------------------------
Delete on tsld_rrddata_tos_0  (cost=0.57..70254.28 rows=1190726 width=6)
  ->  Index Scan using tsld_rrddata_tos_0_f_timestamp on tsld_rrddata_tos_0  (cost=0.57..70254.28 rows=1190726 width=6)
        Index Cond: (f_timestamp > 1600226278)
(3 rows)

sla=# explain delete from bmx.tsld_rrddata_tos_0 where f_timestamp < 1600226278 ;
                                     QUERY PLAN                                      
---------------------------------------------------------------------------------------
Delete on tsld_rrddata_tos_0  (cost=0.00..16081852.60 rows=372578842 width=6)
  ->  Seq Scan on tsld_rrddata_tos_0  (cost=0.00..16081852.60 rows=372578842 width=6)
        Filter: (f_timestamp < 1600226278)
(3 rows)
Условия же разные, вот и в одном случае имеет смысл использовать индекс, в другом нет
источник