Вставка значень у таблицю Mysql, якщо всі стовпці мають різні значення - mysql

Я працюю над сайтом ведення блогів, але проблема якоїМені здається, що я хочу дозволити користувачеві створювати блог лише тоді, коли його комбінація електронної адреси, назви блогу та назви блогу відрізняється від інших рядків у таблиці. Наприклад, давайте розглянемо цю таблицю: -

Email                          BlogName                                BlogTitle
[email protected]                Coder"s world                         What is coding?
[email protected]                Sql world                             What is sql?

Тепер, якщо користувач намагається ввести значення ("[захищена електронною поштою]"," Світ кодера "," Що таке кодування? "") у таблиці, він / вона не зможе це зробити. Але якщо користувач намагатиметься вставити іншу комбінацію електронної пошти, BlogName та BlogTitle, то він / вона буде дозволено це робити.

Оскільки я досить новим у Mysql, я не знаю, як це зробити, тому, будь ласка, допоможіть мені це зробити. Моя структура таблиці: - введіть опис зображення тут

Відповіді:

1 для відповіді № 1

Ви можете додати унікальне обмеження на комбінацію трьох стовпців:

ALTER TABLE `blog_table` ADD UNIQUE `unique_index`(`Email`(100), `BlogName`(100), `BlogTitle`(100));

Це буде також видаліть будь-які дублікати, які можуть існувати в вашому блозі.

Зверніть увагу, що це обмеження використовує лише перші 100 символів з кожного з трьох стовпців, щоб уникнути #1071-Specified key was too long помилка


0 для відповіді № 2

Зробіть ці 3 колонки унікальними.

Ось приклад створення декількох полів композитів СТРАНИЦЯ ALTER TABLE ADD UNIQUE ("поле_1", "поле_2", "поле_3");


0 для відповіді № 3
IF (SELECT 1 = 1 FROM Table WHERE [email protected] and [email protected] and [email protected]) THEN
BEGIN
#return error message do not insert
END;
ELSE
BEGIN
#insert logic here
END;
END IF;

Перевірте наявність відповідного запису в таблиці перед вставленням за допомогою наведеного вище коду


Схожі запитання
Найбільш популярний