172 похожих чатов

Доброе время суток! Есть задача создать ключ или id на

основе нескольких текстовых колонок и одной timestamp колонки. Нужен ключ чтобы при условии что данные не менялись ключ был тем же ну и соответственно если хоть в одной колонке добавился пробел то ключ поменялся. Как то давно я использовал crc32 для похожей задаче. Есть вариант с MD5. Что то вроде MD5((column1||column2)::text) или MD5(ROW(column1, column2)). Но есть сомнения что это так сказать результат immutable.
Я планирую использовать generated always ... stored для колонки с этими ключами.
Сработает ли мой вариант с MD5? Если другие варианты?

10 ответов

7 просмотров

А в чем сомнения то? Хэш он и есть хэш

Konstantin Zaitsev
А в чем сомнения то? Хэш он и есть хэш

client_encoding? Database encoding? Локаль? Нормализацыя юникода?

Ну, второе вообще непонятно как работать будет. А в первом — прибейте гвоздями формат вашэй даты, напишыте независимую реализацыю (на перле каком-нибудь), и если результаты будут совпадать — значит, есть довольно стабильный формат.

Denis-M Автор вопроса
Ilya Anfimov
Ну, второе вообще непонятно как работать будет. А...

Я как раз crc32 писал на perl. Но если честно давно это было и заняло очередь много времени которого у меня просто нет. В упомянули второй вариант, это с MD5?

Denis M
Я как раз crc32 писал на perl. Но если честно давн...

А вообще (не хотел сначала опять лезть, но как-то без этого сложно) — само предложэние сравнивать md5 вместо ключей — выглядит лишней работой.

Ilya Anfimov
А вообще (не хотел сначала опять лезть, но как-то ...

Хранить md5 выгладит странной работой, а сравнивать нормально по условиям задачи

Denis-M Автор вопроса

Спасибо за ответы. Данные из стрима через DMS который содержит и full load и CDC. Проблема в том конечный результат опять идёт в другой stream. И чтобы не гонять full load второй раз для второго DMS если сломается первый DMS можно держать подобные ключи для сравнения. Но вы правы, мне интуитивно тоже не нравится это решение. Надо как то "захешать" несколько колонок. Есть другие варианты? DMS это Database Migration Service.

Denis M
Спасибо за ответы. Данные из стрима через DMS кот...

Есть. Не ломайте первый DMS! (Я вообще непонял архитектуры, и где там поможэт md5).

Denis M
Спасибо за ответы. Данные из стрима через DMS кот...

И да, md5 — приемлемый для этого хэш если его спецыально ломать не будут. Я про странность решэния в цэлом.

Denis-M Автор вопроса
Ilya Anfimov
И да, md5 — приемлемый для этого хэш если его спец...

Решение не моё и да, архитектура странная но из того что я знаю мне в целом нравится.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта