mysql'in 5.5.47 sürümünü (Ubuntu) kullanıyorum. Masaya yerleştirmeden önce kontrol etmek için bir tetikleyici oluşturmaya çalışıyorum. Benim fikrim: LoginName
sütun değeri ve Email
sütun değeri varsa, yeni bir kayıt eklenmeyecek.Bir kaydın bulunup bulunmadığını doğrulamak için tetikleyici nasıl oluşturulur?
Tablo: Yaptığım
CREATE TABLE IF NOT EXISTS `MemberProfile` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`LoginName` varchar(255) NOT NULL,
`Password` varchar(255) NOT NULL,
`FirstName` varchar(255) DEFAULT NULL,
`LastName` varchar(255) DEFAULT NULL,
`Email` varchar(255) DEFAULT NULL,
`Birthday` date DEFAULT NULL,
`Gender` int(11) DEFAULT NULL COMMENT '1: nam , 2 nu',
`Address` varchar(255) DEFAULT NULL,
`ProfileID` text,
`ProfileURL` text,
`AvatarImageURL` text,
`CoverImageURL` text,
`ActiveTime` datetime NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;
bu:
CREATE TRIGGER verifyExists BEFORE INSERT ON MemberProfile
FOR EACH ROW
BEGIN
IF NEW.Email,NEW.LoginName not in (
select *
From MemberProfile AS A
where (NEW.LoginName = A.LoginName and NEW.Email = A.Email)
) THEN
CALL `Insert not allowed`;
END IF;
END;
hatası:. Bence, YENİ yılında
MySQL said: Documentation
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
near 'NEW.LoginName not in ( select * From MemberProfile AS ' at line 4
[colu mns] ekleme eyleminden bir argümandır. Ben tam olarak bunu bilmiyorum. Biri yardım edebilir mi?
neden oldu. gönderim negatived? – Loint