Уникальность по трем параметрам - MySQL
Формулировка задачи:
Создается временная таблица
Запись ведется так:
Как организовать таблицу, чтобы инкремент n происходил лишь в том случае, когда уникальным является сочетание трех других параметров?
$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)");
Решение задачи: «Уникальность по трем параметрам»
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.
- $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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д