Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! Имеется таблица, которая временами пополняется. В ней есть интересный столбец, который отвечает за подразделение (назову его Firm ). Чаще всего он NULL, но бывает такое, что в нём содержатся данные (id фирмы). Самая печаль происходит тогда, когда таблица обновляется. Она обновляется и добавляются новые элементы, при этом это самое поле становится снова NULL. И мне интересно, как сделать так (через хранимую процедуру или job какой-нибудь), чтобы происходила проверка и когда появлялась новая запись, то была проверка на то, есть ли какое значение в поле Firm и если оно есть, то присваивало это значение. Своеобразная проверка по Firm - отдел человека и ChelId - id сотрудника. Не всем новым элементам, а по ид чела, т.е. у одного чела могут быть несколько записей. Надеюсь не запутал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 15:43 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOP, 1) Тригеры 2) Более верное, делать правильный апдейт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 15:57 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOPСамая печаль происходит тогда, когда таблица обновляется. Она обновляется и добавляются новые элементы, при этом это самое поле становится снова NULL.Значит, не через то место обновляете. KOHHEKTOPчтобы происходила проверка и когда появлялась новая запись, то была проверка на то, есть ли какое значение в поле Firm и если оно есть, то присваивало это значение. Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 16:09 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Akina, а можно как-то через if [новое_значение_Firm] = [предыдущее] else [меняем_его_на_предыдущее] ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 19:16 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
На MySQL-сервере? Нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 19:56 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
artas, можно подробнее про тригеры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2018, 20:08 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Можете подтолкнуть в какую сторону нужно думать? Код: sql 1. 2. 3. 4. 5. 6. 7. В общем я не знаю как показать что мне нужно именно предыдущая и чтобы внимание было уделено на ChelId, а не на вообще Id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 06:59 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Триггер тут не нужен. Решение дано - и всё оно укладывается в один запрос. Зачем ещё огород городить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 07:52 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Akina, быть может Вы меня не правильно поняли. Обратите внимание на EmploeeId - он может быть одинаковым при добавлении новых строк. И если он будет одинаковый, то мне нужно чтобы idFirmR приняло его предыдущее значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 09:13 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOP , каким образом Вы идентифицируете ту конкретную запись, которую следует обновить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 09:15 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Akina, по наличию данных в EmploeeId. Если там NULL, то чаще всего обновлять не нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 09:38 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOPAkina, по наличию данных в EmploeeId. Если там NULL, то чаще всего обновлять не нужно Немного не так. При добавлении нового элемента, это поле у всех становится NULL, но некоторым, у кого уже было значение раньше, нужно его вернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 10:10 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOPKOHHEKTOPAkina, по наличию данных в EmploeeId. Если там NULL, то чаще всего обновлять не нужно Немного не так. При добавлении нового элемента, это поле у всех становится NULL, но некоторым, у кого уже было значение раньше, нужно его вернуть. IdFirmR Становится NULL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 10:11 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOP , ты не понял вопроса. У тебя есть набор записей. Тебе приходит запись с некими значениями полей. На основании значений каких полей ты принимаешь решение, новая это запись или обновляющая? А если обновляющая - то какую конкретную запись она должна обновить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 11:39 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Akina, Ну можно сказать что это поле DateUpdate. Т.е. если оно стало новее, то IdFirmR должно принять значение предыдущего. При это акцент ставится на EmploeeId , а не но новую запись вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 11:59 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Но лучше основываться на Id . Вот пример проблемной записи. Здесь видно что появилась новая запись (с новым Id) и EmploeeId у всех записей одинаковый (выборка сделана по этому принципу), но idFirmR у него стал по умолчанию - NULL, а нужно чтобы она была как у предыдущей записи, т.е. 1881 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 12:11 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOPНу можно сказать что это поле DateUpdate. Т.е. если оно стало новее, то IdFirmR должно принять значение предыдущего. При это акцент ставится на EmploeeId , а не но новую запись вообще.Ты что, не понимаешь, какую хрень говоришь? По твоим словам, если имеется наполнение, показанное на первом скриншоте, и тебе поступает запись с датой обновления 2018-01-17 ("оно стало новее" - условие выполнено, а значения остальных полей ты вообще не рассматриваешь, значит, они ни на что не влияют), то IdFirm некоей записи (какой из них? непонятно) должно стать равно значению IdFirm предыдущей записи (при какой сортировке? непонятно). И при чём тут какой-то акцент? Включай мозг и формулируй так, чтобы любой, кто имеет исходные данные и ТОЛЬКО твои слова, мог ОДНОЗНАЧНО ПРАВИЛЬНО выполнить операцию. KOHHEKTOPНо лучше основываться на Id .Не должно быть никакого "лучше" или "хуже". Должно быть строго и однозначно. Сотне человек дали исходные данные и алгоритм, и все сто сделали одинаково. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 12:41 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Akina, имеется таблица. Она постоянно пополняется. Появляются новые записи с новым Id, при этом не всегда другие значения в столбцах меняются. Нужно чтобы при появлении новой записи (нового Id), осуществлялась проверка по значению в столбце EmploeeId и если у новой записи EmploeeId уже существовал в таблице, то этой записи присваивается значение столбца idFirmR такое же, какое было у предыдущей записи с одинаковым EmploedId. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 12:49 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOPпроверка по значению в столбце EmploeeId и если у новой записи EmploeeId уже существовал в таблице, то этой записи присваивается значение столбца idFirmR такое же, какое было у предыдущей записи с одинаковым EmploedId.Предыдущей - при какой сортировке? Если записей с таким EmploeeId - несколько? Ибо без сортировки понятия "предыдущая запись" - не существует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:03 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
И ещё. Согласно последней формулировке, записи ТОЛЬКО добавляются. Как тогда понимать фразу об обновлении таблицы в первом сообщении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:05 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
Akina, сортировка по столбцу Id. В том то и дело, что записей с EmploeeId может быть несколько, но Id у них будет разный и тот, что больше, тот и новее. Про обновление писал когда имел ввиду что фактически выглядит так, что запись обновляется (EmploeeId же одинаковый и как бы запись одна), хотя на самом деле записи добавляются. Понимаю что запутал в конец. Пробовал через LAG и LEAD, но SQL 2008 и не поддерживает их. А принцип мне нужен почти такой же, что они и выполняют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:38 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
На самом деле сортировка не особо важно. Достаточно примитивно осуществить проверку, что при добавлении новой записи, смотрелось на EmploeeId и если оно уже есть в базе, то этой новой записи присваивалось значение idFirmR такое же, какое было у EmploeeId. Пусть даже это будет NULL Как то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 13:43 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
хочется какой-то бред в виде Код: sql 1. И засунуть это в триггер. Но разумеется оно так не прокатит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 14:46 |
|
||
|
Автоматическое добавление значения при добавлении элемента в таблице
|
|||
|---|---|---|---|
|
#18+
KOHHEKTOPно SQL 2008 и не поддерживает ихУ Вас, я извиняюсь, какой именно сервер БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2018, 15:18 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39584779&tid=1690317]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 353ms |

| 0 / 0 |
