Bonjour,
je dispose d'une table "hosts" que voici:
DROP TABLE IF EXISTS `syslog`.`hosts`;
CREATE TABLE `syslog`.`hosts` (
`host_name` varchar(60) default NULL,
`site` varchar(50) default NULL,
`ip_adress` varchar(30) NOT NULL default '',
`statut` int(10) unsigned default NULL,
`history_length` int(10) unsigned default NULL,
PRIMARY KEY (`ip_adress`),
KEY `index_host` (`ip_adress`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
je veut faire un trigger qui verifie si
ip_adress existe avant insertion si c'est le cas l'insertion ne se fait pas étant un clée primaire on est sur que le simple insert fera l'affaire mai on m'a dit
c'est pas propre comme moyen ;
INSERT INTO hosts (ip_adress) VALUES ( '$HOST')
donc j'ai tenté ça
CREATE TRIGGER test BEFORE INSERT syslog.'hosts'
FOR EACH ROW BEGIN
DECLARE @x VARCHAR(30);
SET @x = (SELECT ip_adress FROM hostq WHERE ip_adress = NEW.ipadress);
IF @x IS NOT NULL THEN INSERTINTO hosts (ip_adress) VALUES (NEW.ipadress );
else ;
mais j'ai un message d'erreur insert if not exist
ma question est la suivante
1 qu'es ce qui cloche dans mon triggeer ?
2 J'ai vu qu'il y a une autre solution
insert if not exists mais ça ne marche pas ça n'insère pas.
je suis ouvet à toute vo prposition
Configuration: Linux Suse
Firefox 3.0.4