SPSS(統計プログラム)からローカルのmysqlデータベースにデータをエクスポートしようとしています。何らかの理由で私は '列カウントが値のカウントと一致しません'というメッセージが表示されます。私は、SQL文の何かが間違っているときにそのエラーを取得するのに慣れています。しかし、数時間のテストの後には、それが問題ではないことは明らかです。Mysql: 'common'列にエラーがありませんか? SPSSからmysqlにデータをエクスポートするとき
SPSS構文はSQL形式です。動作する構文は、例えば、このいずれかになります。
SAVE TRANSLATE /TYPE=ODBC
/CONNECT='DSN=localhost;UID=root;PWD=!S%E&u#k;'
/ENCRYPTED
/MISSING=IGNORE
/SQL='CREATE TABLE test1 (jaar double , maand double , dag double , huishoud double , persoon double , verpl double , rit double)'
/REPLACE
/TABLE='SPSS_TEMP_2'
/KEEP=jaar, maand, dag, huishoud, persoon, verpl, rit
/SQL='INSERT INTO test1 (jaar, maand, dag, huishoud, persoon, verpl, rit) SELECT jaar, maand, dag, huishoud, persoon, verpl, rit FROM SPSS_TEMP_2'
/SQL='DROP TABLE SPSS_TEMP_2'.
MySQLデータベースは、次のようになり、このコマンドを実行した後、次のデータで
CREATE TABLE `test1` (
`jaar` double DEFAULT NULL,
`maand` double DEFAULT NULL,
`dag` double DEFAULT NULL,
`huishoud` double DEFAULT NULL,
`persoon` double DEFAULT NULL,
`verpl` double DEFAULT NULL,
`rit` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
:これまでのところ
INSERT INTO `test1` (`jaar`, `maand`, `dag`, `huishoud`, `persoon`, `verpl`, `rit`) VALUES
(2005, 1, 3, 1, 1, 1, 1),
(2005, 1, 3, 0, 0, 1, 1),
(2005, 1, 3, 1, 1, 1, 1),
(2005, 1, 3, 0, 0, 1, 1),
(2005, 1, 3, 0, 0, 1, 1),
(2005, 1, 3, 0, 0, 1, 1),
(2005, 1, 3, 0, 1, 1, 1),
(2005, 1, 3, 0, 0, 1, 1),
(2005, 1, 3, 0, 0, 1, 1),
(2005, 1, 3, 0, 0, 1, 1);
とても良い。ただし、完全なデータセットには129の変数(SQLフィールド)があります。エラーを与える最初のものは「ritid」と呼ばれます。他の人と一緒に挿入すると、完全なプロセスが停止します。しかし、単独で挿入しても、それは壊れます。テーブルは作成されますが、データは作成されません。以下に示すように。私はこのタイプのエラーが現れるのは私には不思議です。誰かアドバイスをすることができますか?
SAVE TRANSLATE /TYPE=ODBC
/CONNECT='DSN=localhost;UID=root;PWD=!l*z%J,[;'
/ENCRYPTED
/MISSING=IGNORE
/SQL='CREATE TABLE Test2 (ritid double)'
/REPLACE
/TABLE='SPSS_TEMP_2'
/KEEP=ritid
/SQL='INSERT INTO Test2 (ritid) SELECT ritid FROM SPSS_TEMP_2'
/SQL='DROP TABLE SPSS_TEMP_2'.
>Error # 6491. Text: Case #1 has been dropped
>Insert record failed
>Execution of this command stops.
>[Actual][MySQL] Column count doesn't match value count at row 1
>Error # 6487
>Write request failed - couldn't write any data.
MySQLのDB:
CREATE TABLE `Test2` (
`ritid` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
EDIT(前に述べたように、データはこの1つに存在しない): 'ドロップSPSS_TEMP_2' コマンドをスキップし、SPSS_TEMP_2データベースTest2データベースとまったく同じです。
いずれの値にも '、'が含まれていますか? '113,456,789.0123'のように – MatBailie
' SELECT ritid FROM SPSS_TEMP_2'というクエリを別に実行して、 'INSERT'で失敗したクエリの出力を投稿できますか? – Daan
@Dems実際には可能な説明として聞こえるが、そうではない。 –