Как получить max(column_name) из таблицы независимо от предложения where в запросе?

У меня есть требование вставки данных в таблицу, а один из столбцов - seq_number. У меня есть предложение where в запросе выбора, и я хочу вставить max(seq_num)+1 для каждой записи, которую я хочу вставить. Максимум seq_num дает мне максимум для предложения where, а не фактический максимум из таблицы.

INSERT INTO TABLE_NAME 
SELECT
    NEWID(),
    MAX(SEQ_ORD_R)+1,  -- This should be the max from table irrespective of the where clause
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP
FROM TABLE_NAME
WHERE SOFA_K = 'FD5B6BE8-F1CF-42C0-9216-B13163413F96'

person shaik rehan    schedule 25.11.2020    source источник
comment
Вы делаете это, определяя seq_ord_r как столбец с автоинкрементом и просто не делая этого.   -  person Gordon Linoff    schedule 25.11.2020
comment
Посмотрите здесь: stackoverflow.com/questions/65001331/ Это может вам помочь   -  person Slava Rozhnev    schedule 25.11.2020
comment
Насколько мне известно, в MySql нет функции NEWID (это функция, определяемая пользователем?), и имя столбца seq_num соответствует вашему описанию или SEQ_ORD_R соответствует вашему SQL? См. Почему должен ли я предоставить минимально воспроизводимый пример для очень простого SQL-запроса?.   -  person Booboo    schedule 25.11.2020
comment
Гордон Линофф -- Спасибо за быстрый ответ, я не знаю, согласятся ли они изменить тип данных на данный момент, но я спрошу. Слава Рожнев -- Спасибо, я просматриваю ссылку Booboo -- в sql-сервере есть функция NEWID() для создания UUID (уникального идентификатора). Проблемным столбцом здесь является SEQ_ORD_R, на который я ссылался как на seq_num в описании выше.   -  person shaik rehan    schedule 25.11.2020
comment
MySql имеет функцию UUID.   -  person Booboo    schedule 25.11.2020


Ответы (2)


person    schedule
comment
Вставка нескольких строк. Уже пробовал это, все строки дают одинаковый SEQ_ORD_R - person shaik rehan; 25.11.2020
comment
Вот почему вы должны создать минимально воспроизводимый пример. Другими словами, зайдите на такой сайт, как db-fiddle.com, и создайте образцы таблиц с достаточным количеством данных, которые демонстрируют проблему и с которыми люди на этом сайте могут проверить свои предполагаемые решения. Это экономит всем (ну, не вам, а нам) много времени. - person Booboo; 25.11.2020
comment
Спасибо .. Но я смог решить проблему. Это мой первый пост, поэтому я не знал о db-fiddle.com. Я запомню это. Я опубликую ответ в ближайшее время - person shaik rehan; 25.11.2020

person    schedule
comment
Просто для информации: для этого решения требуется MySql 8+ (я не делал такого предположения в своем ответе), и, как и в моем ответе, вам нужно будет использовать функцию UUID. - person Booboo; 25.11.2020