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

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

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

Создается временная таблица
$query = "CREATE TEMPORARY TABLE posetit_google
        (
            id              INT         (11) NOT NULL AUTO_INCREMENT,
            url             CHAR        (250),
            poisk_fras      CHAR        (200),
            ist                 CHAR        (200),
            n               INT         (6) default '0',
            PRIMARY KEY(id)
        )   COLLATE='utf8_general_ci'
            ENGINE=InnoDB CHARACTER SET utf8";
        mysql_query($query);

        $query = "ALTER TABLE `posetit_google` ADD UNIQUE (url)";
        mysql_query($query);
Запись ведется так:
        mysql_query("INSERT INTO posetit_google (`url`, `poisk_fras`, `ist`, `n`)
        VALUES ('$url', '$poisk_fras', '$ist', '1')
        ON DUPLICATE KEY UPDATE `n` = (n + 1)");
Как организовать таблицу, чтобы инкремент n происходил лишь в том случае, когда уникальным является сочетание трех других параметров?

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

textual
Листинг программы
$query = "CREATE TEMPORARY TABLE posetit_google
        (
            url             CHAR        (250),
            poisk_fras      CHAR        (200),
            ist                 CHAR        (200),
            n               INT    (6)   NOT NULL default '0',
            PRIMARY KEY(n, url, poisk_fras, ist)
        )   COLLATE='utf8_general_ci'
            ENGINE=InnoDB CHARACTER SET utf8";
        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
Похожие ответы