I have a CLOUDSQL (Mysql 8) on GCP. It has two databases: EDW and EDW_STAGE. Both have a LEADS table. The EDW_STAGE database is a staging database that will merge daily information into the EDW.
I'm trying to run a merge from EDW_STAGE to EDW. WHile every SQL checker states that I have good code, I get the below error:
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 'MERGE EDW.LEADS AS MyTarget
USING EDW_staging.LEADS as MySource
ON MyS' at line 1
My Code:
MERGE offrs.LEADS AS MyTarget
USING offrs_staging.LEADS as MySource
ON MySource.LEADID = MyTarget.LEADID
WHEN MATCHED THEN UPDATE SET
LEADSOURCE = MySource.LEADSOURCE,
LEADTYPE = MySource.LEADTYPE,
FNAME = MySource.FNAME,
LNAME = MySource.LNAME,
EMAIL = MySource.EMAIL,
EMAIL2 = MySource.EMAIL2,
PHONE1 = MySource.PHONE1,
PHONE2 = MySource.PHONE2,
ATTOM_ID = MySource.ATTOM_ID,
GEOID = MySource.GEOID,
SCORE = MySource.SCORE,
AVM = MySource.AVM,
ADDRESS1 = MySource.ADDRESS1,
ADDRESS2 = MySource.ADDRESS2,
CITY = MySource.CITY,
ZIP = MySource.ZIP,
LAT = MySource.LAT,
LNG = MySource.LNG,
STATUS = MySource.STATUS,
LISTINGDATE = MySource.LISTINGDATE,
DATESTAMP = MySource.DATESTAMP,
LOAD_DATE = MySource.LOAD_DATE
WHEN NOT MATCHED THEN INSERT
(
LEADID,
LEADSOURCE,
LEADTYPE,
FNAME,
LNAME,
EMAIL,
EMAIL2,
PHONE1,
PHONE2,
ATTOM_ID,
GEOID,
SCORE,
AVM,
ADDRESS1,
ADDRESS2,
CITY,
ZIP,
LAT,
LNG,
STATUS,
LISTINGDATE,
DATESTAMP,
LOAD_DATE
)
VALUES (
MySource.LEADID,
MySource.LEADSOURCE,
MySource.LEADTYPE,
MySource.FNAME,
MySource.LNAME,
MySource.EMAIL,
MySource.EMAIL2,
MySource.PHONE1,
MySource.PHONE2,
MySource.ATTOM_ID,
MySource.GEOID,
MySource.SCORE,
MySource.AVM,
MySource.ADDRESS1,
MySource.ADDRESS2,
MySource.CITY,
MySource.ZIP,
MySource.LAT,
MySource.LNG,
MySource.STATUS,
MySource.LISTINGDATE,
MySource.DATESTAMP,
MySource.LOAD_DATE
);
Am I missing something here? or do I have to set a setting on MySQL to enable this? Any wisdom would be greatly appreciated.