Google Cloud SQLでsqlを使用してフォローテーブルにレコードを追加しようとしています。Google Cloud SQL mysql_query子ローを追加または更新できません
CREATE DATABASE IF NOT EXISTS phunter_spark;
USE phunter_spark;
DROP TABLE IF EXISTS Vote;
DROP TABLE IF EXISTS Product;
CREATE TABLE IF NOT EXISTS Product
(
id varchar(255),
name varchar(255),
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS Vote
(
userId varchar(255),
prodId varchar(255),
rating int,
PRIMARY KEY(prodId, userId),
FOREIGN KEY (prodId)
REFERENCES Product(id)
);
Productテーブルをアップロードするときは、正常に動作します。例製品のCSVデータは次のとおりです。
57243,We Are Heroes
57242,Tesla Model 3
57239,Captain Strike
57229,Gmail Mic Drop
57223,Sponge Club
ただし、投票をアップロードしようとするとエラーが発生します。例投票CSVデータは次のとおりです。私は製品のSQLデータベース内のオブジェクトとして含まれている投票CSVデータで100%必ず今までPRODIDだ
129455,57119,1
105600,57245,1
105600,57246,1
139608,54933,1
129455,57242,1
7926,57242,1
。
mysql_query Cannot add or update a child row: a foreign key constraint
fails (`phunter_spark`.`Vote`, CONSTRAINT `Vote_ibfk_1` FOREIGN KEY
(`prodId`) REFERENCES `Product` (`id`)) (LOAD DATA INFILE
'gs://dateless-votes-tenk.csv' INTO TABLE `Vote`
CHARACTER SET 'utf8' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"')
これが唯一の問題ですか?私は投票テーブルのデータをサニタイズして、プロダクトテーブルにプロットされた投票者のみを含むようにしました。これは他の何かが問題だと私に信じさせる。 –
私が知っている他の問題はない。エラーステートメントは、問題がCSVファイルであることを明確に示しています。あなたの投票ファイルに空白がないか調べてください。 「57229」と「57229」は異なります。あなたがすでに列idとprodidとmatchまたはvlookup関数を使ってexcelでマッチしたことを願っています。 –