Уникальность по трем параметрам - MySQL

Узнай цену своей работы

Формулировка задачи:

Создается временная таблица
Листинг программы
  1. $query = "CREATE TEMPORARY TABLE posetit_google
  2. (
  3. id INT (11) NOT NULL AUTO_INCREMENT,
  4. url CHAR (250),
  5. poisk_fras CHAR (200),
  6. ist CHAR (200),
  7. n INT (6) default '0',
  8. PRIMARY KEY(id)
  9. ) COLLATE='utf8_general_ci'
  10. ENGINE=InnoDB CHARACTER SET utf8";
  11. mysql_query($query);
  12.  
  13. $query = "ALTER TABLE `posetit_google` ADD UNIQUE (url)";
  14. mysql_query($query);
Запись ведется так:
Листинг программы
  1. mysql_query("INSERT INTO posetit_google (`url`, `poisk_fras`, `ist`, `n`)
  2. VALUES ('$url', '$poisk_fras', '$ist', '1')
  3. ON DUPLICATE KEY UPDATE `n` = (n + 1)");
Как организовать таблицу, чтобы инкремент n происходил лишь в том случае, когда уникальным является сочетание трех других параметров?

Решение задачи: «Уникальность по трем параметрам»

textual
Листинг программы
  1. $query = "CREATE TEMPORARY TABLE posetit_google
  2.        (
  3.            url             CHAR        (250),
  4.            poisk_fras      CHAR        (200),
  5.            ist                 CHAR        (200),
  6.            n               INT    (6)   NOT NULL default '0',
  7.            PRIMARY KEY(n, url, poisk_fras, ist)
  8.        )   COLLATE='utf8_general_ci'
  9.            ENGINE=InnoDB CHARACTER SET utf8";
  10.         mysql_query($query);

Объяснение кода листинга программы

Код создает временную таблицу posetit_google с четырьмя столбцами: url, poisk_fras, ist и n. Столбец n имеет тип данных INT(6) и не может быть пустым (NOT NULL). Столбец n также является первичным ключом таблицы, что означает, что каждое значение в этом столбце должно быть уникальным в сочетании с значениями в столбцах url, poisk_fras и ist. Также в коде указывается, что таблица будет создана с использованием кодировки utf8_general_ci и движка InnoDB.

  1. $query = `CREATE TEMPORARY TABLE posetit_google
  2. (
  3. url CHAR(250),
  4. poisk_fras CHAR(200),
  5. ist CHAR(200),
  6. n INT(6) NOT NULL default '0',
  7. PRIMARY KEY(n, url, poisk_fras, ist)
  8. ) COLLATE='utf8_general_ci'
  9. ENGINE=InnoDB CHARACTER SET utf8`;
  10. mysql_query($query);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.625 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы