У меня есть таблица mysql, содержащая части IP-адреса
TABLE `EndPoints`(
`EndPointId` BIGINT(19) UNSIGNED NOT NULL AUTO_INCREMENT ,
`IpPart1` TINYINT(3) UNSIGNED NOT NULL ,
`IpPart2` TINYINT(3) UNSIGNED NOT NULL ,
`IpPart3` TINYINT(3) UNSIGNED NOT NULL ,
`IpPart4` TINYINT(3) UNSIGNED NOT NULL ,
PRIMARY KEY (`EndPointId`))
ENGINE = InnoDB
Каждый IpPart
содержит байт массива байтов IPAddress.
например адрес 100.101.102.103
IpPart1 = 101;
IpPart2 = 102;
IpPart3 = 103;
IpPart4 = 104;
Во всяком случае!
Я хочу сделать следующее:
SELECT EndPointId FROM EndPoints WHERE
IpPart1 = @a AND
IpPart2 = @b AND
IpPart3 = @c AND
IpPart4 = @d;
Затем, если адрес не найден, добавьте его
INSERT INTO EndPoints (IpPart1,IpPart2,IpPart3,IpPart4)
Values(@a,@b,@c,@d);
Используя транзакции MySql, как я могу обеспечить добавление только одной строки для каждого IP-адреса?
Спасибо!