![]() |
|
Аналог @@rowcount в postgresql | ☑ | ||
---|---|---|---|---|
0
idw
06.01.19
✎
12:37
|
Хочу подчистить базу 1С с помощью PostgreSQL.
Есть такой код под MS SQL: set rowcount 100000 set dateformat ymd DElete from _Document452 where _Document452._Date_Time >=('4018-12-01 00:00:00') and _Document452._Date_Time <=('4018-12-31 23:59:59') while @@rowcount > 0 begin DElete from _Document452 where _Document452._Date_Time >=('4018-12-01 00:00:00') and _Document452._Date_Time <=('4018-12-31 23:59:59') end; Но как его переделать под Postgress? В Postgress нет такой конструкции @@rowcount |
|||
1
МихаилМ
06.01.19
✎
12:41
|
||||
2
idw
06.01.19
✎
12:48
|
То есть так?
declare rows_count bigint := 0; set dateformat ymd DElete from _Document452 where _Document452._Date_Time >=('4018-12-01 00:00:00') and _Document452._Date_Time <=('4018-12-31 23:59:59') get diagnostics rows_count = row_count; while row_count > 0 begin DElete from _Document452 where _Document452._Date_Time >=('4018-12-01 00:00:00') and _Document452._Date_Time <=('4018-12-31 23:59:59') end; |
|||
3
Конструктор1С
06.01.19
✎
13:08
|
Явное нарушение лицензионного соглашения 1С
|
|||
4
девопсер
06.01.19
✎
13:10
|
(3) да всем нас@ать на него
|
|||
5
idw
06.01.19
✎
13:21
|
(3) загляни на инфостарт поборник лицензионного соглашения.
|
|||
6
bolero
06.01.19
✎
14:29
|
- при простом исполнении DELETE из psql и многих других консолей он тебе сам напишет, сколько строчек удалил
- в хранимке на языке plpgsql: GET DIAGNOSTICS skoka_udolil = ROW_COUNT; А вообще с помощью odata /Unpost() + DELETE удалят заодно табличные части и записи в РН, РС. В 1С нет Foreign Key от слова совсем, и контроль целостности полностью на плечах платформы. DELETE CASCADE не прокатит. |
|||
7
idw
06.01.19
✎
14:38
|
(6) Спасибо за дельный совет.
А как объявить переменную skoka_udolil ? declare skoka_udolil bigint; Ругается на bigint, пробывал int и integer, тоже самое. |
|||
8
bolero
06.01.19
✎
15:08
|
CREATE OR REPLACE FUNCTION udolit()
RETURNS NUMERIC AS $$ DECLARE skoka_udolil BIGINT; BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS t ( a INTEGER ); INSERT INTO t VALUES (1), (2), (3); DELETE FROM t WHERE 1=1; GET DIAGNOSTICS skoka_udolil = ROW_COUNT; RETURN skoka_udolil; END; $$ LANGUAGE plpgsql; SELECT udolit(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |