@only_works

Возможно ли создать колонку внутри которой только одна ячейка имеет права содержать в себе значение?

Всем привет.
Возможно ли в MySQLi создать колонку внутри таблицы, которая позволяет только одной ячейке(одной записи) содержать в себе значение.
Предположим в таблице имеется две колонки: id и status. В таблице имеется 3 записи с соответствующими id: 1, 2, 3. Но колонка status может содержать значение только для одной записи. Пока для 2-ой записи в колонке status что-то содержится(любое значение), для всех остальных записей это колонка не может содержать в себе ничего. Как только колонка status для 2-ой записи стала пустой, то появляется возможность что-то записать в колонку status для любой записи.
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 3
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вешайте на таблицу триггеры BEFORE INSERT и BEFORE UPDATE, в них проверяйте условие и, если оно не соблюдается, генерируйте ошибку.
Ответ написан
Комментировать
gromdron
@gromdron
Работаю с Bitrix24
Думаю нет, хотя может быть какими-то внутренними механизмами это можно обойти, но зачем?

Навскидку есть пара способов:
1) Транзация на запись: стартует транзакцию -> проверяем, если в колонке нет значения -> записываем -> проверяем что она одна -> коммит/откат
2) Блокировать таблицу после внесения изменения
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Нельзя.

В mysqli нет никаких колонок вообще. Это API, набор функций PHP. Его используют самые необучаемые пхпшники, которых отлучили от mysql_query, и которые не сумели освоить ничего более прогрессивного.

Колонки же есть в БД, которая называется mysql.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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