2016-08-11 17 views
1

問題があります。私は別のテーブルにデータを移動したいテーブルがあります。私がするとき: INSERT INTO rosters SELECT * FROM rosters_test
すべての行がデータベースに入ります。問題は、入力された新しいデータ(新しいデータはidの場合はnameなど)に列が順不同であるため、データが不正確で無駄になります。
ohcrap 私はinsert文についてより具体的にしようとしましたが、それはERROR: UNIQUE constraint failedが存在する場所です。私はidseasonである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')) 

答えて

2

使用INSERT INTO...SELECTと明示的にあなたがrostersテーブルのためにする列(およびその順序)を指定:あなたの作業

INSERT INTO rosters (position, id, weight, height, imageURL, birthplace, age, name, 
        birthdate, number, season) 
SELECT position, id, weight, height, imageURL, birthplace, age, name, birthdate, 
     number, season 
FROM rosters_test 
+0

は答えます。 –

+0

カラム名として 'rosters_test'があります。 INSERT INTOロスター(位置、ID、体重、身長、imageURL、出生地、年齢、名前、 誕生日、番号、季節) VALUES SELECTポジション、ID、体重 生年月日、番号、シーズン FROM rosters_test'しかし、文法エラー 'near select 'を受け取りました –

+0

ID列名を' rosters_test'の代わりに 'id'に変更しました。なぜあなたはそこにいたのか分かりません。 –

関連する問題