使用新的外键值更改 sql table

Alter sql table with new foreign key values

我有 'locations' 数据库和两个 table。我的第一个 table 是 'uszips',看起来像:

--id--zipCode--stateCode--latitude--longitude--
   1    35004         AL  33.584132 -86.515570
   2    35005         AL  33.588437 -86.959727

现在,我有一个名为 'usstates' 的第二个 table,我已经有了两个字母的州代码:

--id--stateCode--
   1         AK
   2         AL

我无法编写查询来修改 'uszips' table,因为 'stateCode' 列将 'stateId' 成为 'usstates' 的外键.例如:

--id--zipCode--stateId--latitude--longitude--
   1    35004        2  33.584132 -86.515570
   2    35005        2  33.588437 -86.959727

我最好的尝试是:

update uszips set uszips.stateCode=usstates.id
from uszips
join usstates on (uszips.stateCode=usstates.state)

但是我收到以下错误:

#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 'from uszips join usstates on (uszips.stateCode=usstates.state)' at line 2

set 子句应该在 之后 join 子句:

UPDATE uszips
JOIN   usstates ON uszips.stateCode = usstates.state
SET    uszips.stateCode = usstates.id