我正在尝试创建一个过程,将数据插入或更新到同一 MariaDB 服务器上不同数据库中的用户表中。我正在使用 phpMyAdmin。
我有以下两张表:
Database 1: members
Table: tbl_members_contacts
ContactTypeID INT (11)
MemberID INT (11)
ContactInfo VARCHAR (255)
Indexes:
Primary Unique MemberID + ContactTypeID
ContactInfo Unique
Database 2: members_sec
Table: sec_users
login INT (11)
email VARCHAR (255)
Indexes:
Primary Unique login
我只想在 ContactTypeID = 1(即成员的电子邮件地址)时更新数据库 1 上表中的数据。如果数据库 2 中不存在该成员的安全记录,我需要插入一条新记录。
当数据库表中的数据被添加或更改时,我将使用更新和插入触发器来调用该过程。
我尝试在数据库 1 上执行的过程:
DELIMITER $$
CREATE PROCEDURE sec_usersUpdate()
BEGIN
IF tbl_members_contacts.ContactTypeID = 1 THEN
INSERT INTO members_sec.sec_users
(login, email)
VALUES
(tbl_members_contacts.MemberID, tbl_members_contacts.ContactInfo)
ON DUPLICATE KEY UPDATE
members_sec.sec_users.login = VALUES(tbl_members_contacts.MemberID),
members_sec.sec_users.email = VALUES(tbl_members_contacts.ContactInfo);
END IF;
END$$
DELIMITER ;
当我尝试在数据库 1 上运行查询时,收到以下消息:
MySQL 说道: #1064 - 你的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,了解在 'END IF; 附近使用的正确语法。 END' 在第 11 行
我以前从未尝试过做手术,所以我可能还很遥远。我真的很感激一些指导。