問題があります。私は別のテーブルにデータを移動したいテーブルがあります。私がするとき: INSERT INTO rosters SELECT * FROM rosters_test
すべての行がデータベースに入ります。問題は、入力された新しいデータ(新しいデータはid
の場合はname
など)に列が順不同であるため、データが不正確で無駄になります。
私はinsert文についてより具体的にしようとしましたが、それはERROR: UNIQUE constraint failed
が存在する場所です。私はid
とseason
であるrosters
テーブルのデュアルキーを持っています。 テーブルの20142015のロスターを、20152016および20162017のロスターが存在するrosters
テーブルに挿入しようとしています。
roster_test
テーブルのすべての行は、season
の場合は20142015
であり、繰り返しIDの場合は27行すべてをチェックしていません。これらは私が試したクエリです:エラー:UNIQUE制約に失敗しましたが、SELECT *文(SQLite)を使用していません
INSERT INTO 'rosters'
SELECT 'number' AS 'number', 'name' AS 'name' , 'height' AS 'height', 'weight' AS 'weight', 'birthplace' AS 'birthplace', 'birthdate' AS 'birthdate', 'position' AS 'position', 'id' AS 'id', 'age' AS 'age', 'season' AS 'season', 'imageURL' AS 'imageURL'
FROM 'rosters_test'
INSERT INTO 'rosters' (number, name, height, weight, birthplace, birthdate ,position ,id ,age ,season, imageURL)
SELECT 'number', 'name' , 'height', 'weight', 'birthplace', 'birthdate', 'position', 'id', 'age' , 'season', 'imageURL'
FROM 'rosters_test'
私も同様rosters.numberなどrosters_test.numberようなものを試してみました。何も作業していない。ここでは、2つのテーブルのスキーマは次のとおりです。
CREATE TABLE 'rosters_test' ('number' INTEGER, 'name' TEXT, 'height' INTEGER, 'weight' INTEGER, 'birthplace' TEXT, 'birthdate' TEXT, 'position' TEXT, 'id' INTEGER, 'age' INTEGER, 'season' INTEGER, 'imageURL' TEXT)
私も一点にrosters_test
テーブルの上に二重の鍵を持っていました。
CREATE TABLE 'rosters' ('position' TEXT, 'id' INTEGER, 'weight' INTEGER, 'height' TEXT, 'imageURL' TEXT, 'birthplace' TEXT, 'age' INTEGER, 'name' TEXT, 'birthdate' TEXT, 'number' INTEGER, 'season' INTEGER, PRIMARY KEY('id','season'))
は答えます。 –
カラム名として 'rosters_test'があります。 INSERT INTOロスター(位置、ID、体重、身長、imageURL、出生地、年齢、名前、 誕生日、番号、季節) VALUES SELECTポジション、ID、体重 生年月日、番号、シーズン FROM rosters_test'しかし、文法エラー 'near select 'を受け取りました –
ID列名を' rosters_test'の代わりに 'id'に変更しました。なぜあなたはそこにいたのか分かりません。 –