Сап бэ. В программаче как обычно 3,5 анона, поэтому спрошу здесь. В общем суть такова:Есть у меня БД, в ней есть таблица, которая состоит из ключа и 9 других атрибутов. Так вот, как мне запилить проверку ограничение, триггер, хз на то, чтобы только один из этих девяти атрибутов был ненулевым? Ну то есть вот кортеж, ключ ясен хуй, один из 9 атрибутов чем-то забит, остальные пусты. И так должна быть каждая запись в таблице.С меня как обычно.
>>196439443Не не, ты не понял, нужно чтобы этим единственным заполненным мог быть любой из этих атрибутов, но только один. Вот в один что-то записали - все, пиздос, остальные null
>>196439314 (OP)> только одинможет, хотя бы один?есть всякие функции уровня бд, которые можно дергать на инсерте, но меня они бесят, я обычно кодом такую логику хуячу
>>196439840> может, хотя бы один?Не, именно один и только один. Но этим одним может быть любой из 9 атрибутов.> я обычно кодом такую логику хуячуТы имеешь ввиду в приложке или что?
>>196439314 (OP)у каждой БД свое решение для подобной хуйни, где то триггеры, где-то рулсы, гдето еще какая-то хрень, гугли мануал к своей бд.
>>196439938ну ебни триггерhttp://ftp.nchu.edu.tw/MySQL/doc/refman/5.5/en/create-trigger.htmlперед инсертом и в триггере просто в лоб проверку по каждому полю
>>196440161> у каждой БДТы хотел сказать СУБД? Ну у меня mySQL. > гугли мануал к своей бдДа вот хз как такое гуглить.>>196440200А вот это уже какой-никакой вариант по идее.
>>196439314 (OP)>атрибутовПолей чтоль?Всё зависит от СУБД, но нигде сама база данных такую ебанутую хуйню нативно не позволяет. Только проверка вручную, как уже сказали - по триггеру.
>>196440425> Полей чтоль?Столбцов> Всё зависит от СУБД, но нигде сама база данных такую ебанутую хуйню нативно не позволяет. Только проверка вручную, как уже сказали - по триггеру.Да я вже догадываюсь
>>196440357но триггер не отменит инсертдля этого там есть https://dev.mysql.com/doc/refman/5.5/en/signal.htmlно я ими не пользовался
>>196439314 (OP)ааа все проще. Там есть ifhttps://dev.mysql.com/doc/refman/8.0/en/if.htmlхули ты не нагуглил это сам, а? почему я за тебя это делаю??
>>196440553Это и есть поля, когда ты описываешь таблицу.И еще - у тебя какая-то ебала с дизайном таблицы. Нахуй так делать?
В лоб знаю как наговнокодить. Красиво хуй пойми. Ну лоб такая хуйня (хорошо что мы на сосаче и меня за это не уволят ААЗАЗАЗАЗАЗАЗ):SELECT * FROM stupid_anon_table WHERE(col1 IS NOT NULL AND col2 IS NULL AND col3 IS NULL AND ....)OR(col1 IS NULL AND col2 IS NOT NULL AND col3 IS NULL AND ....)....
>>196440725Ни совсем понел. Куда эти костыли с ифами прикручивать?>>196440934Да там долго объяснять, сам думаю что как-то через очко выходит.>>196440956Ти шо пизданутый?
>>196440956ох, так вот ты где. Я тебя давно искал. Я уже заебался вычищать твой говнокод. Мы уже три деадлайна просрали из-за твоих OR'ов
>>196441047Я научил этого питуха выбирать записи, которые ему нужны. Если ему это на инсёрте нужно - путь он нахуй идёт. Пусть пхпшкой проверяет перёд инсёртом или на чём он там говнокодит.>>196441054А что не так, чмонька кортежная?
>>196441054мля.. первый курс что ли?делаешь простокриет функшен ДОБАВЛЕНИЕ_ХУИТЫ_С_ПРОВЕРКОЙ_НА_НУЛЬ (вся структура) бегин иф каждое поле норм инсерт ендиф енди вместо обычного инсерта вызываешь ДОБАВЛЕНИЕ_ХУИТЫ...
>>196441234> мля.. первый курс что ли?Не, четвертый, туплю просто в последнее время.Спасибо, анончик, но я так подумал что залупа какая-то выходит по структуре. Если ничего получше не придумаю то заюзаю твой вариант. Тредю можно закрывать, в принципе? Вам остальные пики с этого фотосета докидать? Их там немного осталосьАбу благословил этот пост.
>>196441393Сливай, пару лет назад весь шишак на эту актрису стер. А как с негром легла сразу чет отбило желание.
>>196441694Я уже забыл какие скидывал, поэтому буду лить подряд, уж не обессудьте. Так даже пак собрать легче будет, если что>>196441661Поподробнее, уважаемый знающий анон. Ну или хотя ссылку на мануал
Анон, а ты уверен, что тебе это всё надо в 9 разных полей пихать? Нельзя запихать в одно и поставить ему not null?
>>196439314 (OP)Если тебе надо чтобы только один столбец из 9 был заполнен всегда, то пиши, сука, это одно сраное значение в один, сука, столбец. Нахуй тебе 8 пустых столбцов одного типа?
>>196441868>>196441925Ну типа защита от дурака, чтобы кто-то не заполнил больше 1 столбца, понимаешь да?
>>196441990Не понимаю.Создай схему базы данных которая состоит из ключа и одного столбца. И прекрати говнокодить.
>>196441990>Ну типа защита от дуракаДурак один только ты с таким подходом. Слушай умных людей даун. Таблица, из сплошных NULL'ов, ну ахуеть теперь
>>196439314 (OP)Оп, давай структуру БД. Я думаю у тебя структура хуёвая совсем, нужна нормализация. Можно наверняка девять полей заменить на два а то и на один.
>>196442597>>196442583Да я знаю что хуевая, буду перепиливать. Тред закрыт уже, я сейчас Николь докидаю и спать пойду.
>>196443519Ты чё охуел Энистон всраткой звать? Да не нее уже во всю гоняли лысого когда ты ещё на арифметике руку поднимал, петушня йопта
>>196439314 (OP)> Сап бэ. В программаче как обычно 3,5 анона, поэтому спрошу здесь. В общем суть такова:> Есть у меня БД, в ней есть таблица, которая состоит из ключа и 9 других атрибутов. Так вот, как мне запилить проверку ограничение, триггер, хз на то, чтобы только один из этих девяти атрибутов был ненулевым? Ну то есть вот кортеж, ключ ясен хуй, один из 9 атрибутов чем-то забит, остальные пусты. И так должна быть каждая запись в таблице.> С меня как обычно.