列にlatlong
という外部キー制約を作成しようとしていますが、指定したコードでエラーコード(1215)が表示されます。 latlong
のデータ型をintに変更すると、コードが正しく機能し、この問題の原因が外部キー制約の作成時にPOINTデータ型であるという考えが得られます。 POINTが0次元のジオメトリオブジェクトである場合、デフォルト値でインスタンス化することはできないため、これは問題ではないこともわかります。MySQLエラー1215:ジオメトリデータ型の外部キー制約を追加できませんPOINT
私が気付いていないPOINTデータ型の特別な属性が必要ですが、オンラインで利用可能なリソースがこの問題の解決に役立っていません。
現在のコードは次のとおりです。
CREATE TABLE IF NOT EXISTS `notablesurroundingareas` (
`nsa_id` int(5) NOT NULL DEFAULT 0,
`latlong` POINT NOT NULL,
`nsa_location_type` varchar(20) DEFAULT '',
`nsa_location_name` varchar(30) DEFAULT '',
PRIMARY KEY (`nsa_id`),
KEY (`latlong`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `locationinformation` (
`latlong` POINT NOT NULL,
`li_city` varchar(30) DEFAULT '',
`li_zip_code` int(5) DEFAULT 0,
`li_area_code` int(3) DEFAULT 0,
FOREIGN KEY (`latlong`)
REFERENCES notablesurroundingareas(`latlong`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
としては、私は、外部キーlatlong
意図したとおりのコードが実行さint(5) NOT NULL DEFAULT 0
に私のPOINTのデータ型を変更する場合、上記と述べました。
これまでに試したことのコードサンプルをご提供ください。そうすれば、私たちはより効果的にあなたを助けることができます。画像は切り取りと貼り付けが難しくなります – Ivonet
申し訳ありませんが、コードを含むように文書を編集しました。 – chasemcintyre