微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在SQL中添加外键时出现语法错误106442000

如何解决在SQL中添加外键时出现语法错误106442000

我正在尝试向某些表添加一些外键。

首先,我向表“ Room”添加一个外键,以使列的房间类型引用表的“房间类型”,列ID。

Private Function ProperCase(ByVal Ref As String) As String

    Dim Sp()        As String           ' Split Ref into words
    Dim i           As Integer          ' loop counter: words

    Sp = Split(Ref)
    For i = 0 To UBound(Sp)
        If Not Sp(i) Like "*[0-9]*" Then Sp(i) = StrConv(Sp(i),vbProperCase)
    Next i
    ProperCase = Join(Sp)
End Function

这很好。但是,当我使用完全相同的格式将外键添加到另一个表时,表Nurse中的“位置”列正在引用表Position中的列ID:

ALTER TABLE room ADD FOREIGN KEY (roomtype) REFERENCES roomtype(ID);

我得到一个错误

错误1064(42000)您的sql语法有错误,请查看与您的MysqL服务器版本相对应的手册,以找到在第2行的“位置(ID)”附近使用正确的语法

我不知道如何将结果传输到此处,但是我对表Nurse和position进行了SHOW CREATE TABLE查询,但这似乎不是由于拼写错误引起的。

我知道这些名称令人困惑,但是我必须使用这些名称

解决方法

  1. 我更改了标签:错误消息明确表明您正在使用mySql(而非MSSQL)。

  2. 我怀疑问题出在列名称“ position”。尝试使用以下语法:

    ALTER TABLE nurse ADD FOREIGN KEY (`position`) REFERENCES `position`(ID);
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。