- ベストアンサー
- すぐに回答を!
SQLのインサートでヌルを挿入できないというエラー
SQLサーバーで、INSERT INTO・・・selectで抽出した列の値を入れたいのですが、主キーのところで下記のエラーが出ます。 テーブル ・・・の列 '・・・' に値 NULL を挿入できません。この列では NULL 値が許可されていません。INSERT は失敗します。 ステートメントは終了されました。 selectで抽出するテーブルの該当列を確認しても値はあるはずですが・・。 原因は何が考えられますか? お願いします・・・。

- SQL Server
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは、はじめまして。 うーん…それだけだと何とも言えませんので、 とりあえずSQL文を全文載せてみてはいかがでしょうか。 挿入する値の順番が誤っているとか、 そんなことはありませんよね?
関連するQ&A
- NULL 値が許可されていません
SQLServer2008かじり始めの素人です。ご教授願います。 MicrosoftSQLManagementStudioにて、「新しいクエリ」で以下のクエリ実行で 以下のエラーが出ます。対応ご存知な方がいらっしゃいましたら 教えてください。 【環境】Windows2003Server SQLSERVER 2008 【テーブル構成】 データベース:BUHIN_SEA 列 親: 部品テーブル(ID,工号,納入先,形式) ↓ 列 子: 納入先テーブル(NOUNYU_ID,納入先) 子: 形式テーブル(KEISIKI_ID形式) * NOUNYU_ID,KEISIKI_ID は主キー 設定 【クエリ】 INSERT INTO 納入先 ( 納入先) SELECT DISTINCT LTrim(部品テーブル.納入先) FROM 部品テーブル LEFT JOIN 納入先 ON 部品テーブル.納入先 = 納入先.納入先 WHERE (((LTrim(部品テーブル.納入先)) Is Not Null) AND ((納入先.納入先) Is Null)) ORDER BY LTrim(部品テーブル.納入先); 【実行結果】 メッセージ 515、レベル 16、状態 2、行 1 テーブル 'BUHIN_SEA.dbo.納入先' の列 'NONYU_ID' に値 NULL を挿入できません。この列では NULL 値が許可されていません。INSERT は失敗します。 ステートメントは終了されました。 * 'NONYU_ID' は、主キーのため、NULLを許容できません。
- ベストアンサー
- SQL Server
- 一括でINSERTする方法(PL/SQL)
PL/SQLを利用して、下記3つのSQLを一括でinsertしたいと思います。 (値は、任意でありません。) PL/SQLに関して、初心者なので、どのように記述してよいか 分かりません。 サンプル的なソースを用いて解説して頂けるとありがたいです。 (1)INSERT INTO tb1(列1, 列2) VALUES('値1','値2') (2)INSERT INTO tb1(列1, 列2) VALUES('値3','値4') (3)INSERT INTO tb1(列1, 列2) VALUES('値5','値6')
- 締切済み
- Oracle
- ERROR1062:Duplicate entry.....というエラーが出てしまいました
いつもお世話になります。 データベースからSELECTで抽出したデータを別のテーブルにINSERTするSQLを実行したのですが、 ERROR1062:Duplicate entry.....というエラーが出てしまいました。 お詳しい方がいらっしゃいましたら、アドバイスをいただけませんでしょうか?よろしくお願いいたします。 【実行したSQL】 INSERT INTO tblA (dataA1, dataA2, dataA3, dataA4) SELECT "9001","AA",dataB1,dataB2 FROM tblB WHERE dataB1 = 52 tblAの主キー:dataA1とdataA2 tblBの主キー:dataB1 dataA1とdataA2はtblAの主キーとなっているため、重複してしまうということのようです。tblBの主キーはdataB1であるため、抽出されてくるデータは常に1件なので問題ないと期待していましたが、甘くなかったようです。何か良い方法はないものでしょうか?よろしくお願いいたします。
- ベストアンサー
- MySQL
- ACCESS SQLのINSERTについて
TBLというテーブルにINSERT文を使用して1行レコードを追加したいです。TBLテーブルのカラムAにはシステム日付を、カラムBには別テーブルのselect count(*)の実行結果を挿入したいのですがうまくいきません。何か良い方法はございませんでしょうか? INSERT INTO カウンタ統計 ( [DATE], USER_COUNT ) VALUES (date(), (SELECT COUNT(*) FROM hiplus_HW_USER)); ※日付は問題なく挿入できるのですがSELECT文の結果が挿入できない状況です。宜しくお願いします.
- 締切済み
- その他(データベース)
- insert into select で別テーブルのID分挿入したい
SQLでこんなことは可能でしょうか。 列 IDとTEXT をもつテーブルA と、 列 IDをもつテーブルBがあります。 テーブルAに、テーブルBのID分のデータを挿入したいです。 TEXTはテーブルAのID=1のTEXTデータを全ての列に挿入します。 このような場合のSQL文を調べてるのですが、 なかなかわからなくて困っています。 insert into select b.id,a.text from tableA as a, tableB as b でもうまくいきませんでした。 何かいい方法はないでしょうか? 回答お待ちしております。
- ベストアンサー
- SQL Server
- Insert文で・・・
失礼します。SQL初心者なので質問します。 Insert into Aテーブル Select X , Y , Z From Bテーブル というSQLがあり、Aテーブルの列数を3から4にした際、AテーブルへのInsertの項目を、BテーブルからSelectされたX,Y,Z以外に普通の変数αも新たに作成した4つめの項目として同時にInsertしたい場合、どのようなSQLにすれば良いでしょうか? Insert into Aテーブル (Select X , Y , Z From Bテーブル),α みたいに都合良くはいきませんよね??
- ベストアンサー
- Oracle
- Insert Into Select での重複について
DB:SQLServer2000 こんにちは お世話になっております。 トランザクションのテーブルA から ワークのテーブルBへInsert Into Select を使用してデータを格納しているのですが、その際に重複が発生してしまいます。 テーブルA 主キーあり テーブルB 主キーなし Delete B Insert into B select 項目1,項目2,・・・ from A With(Nolock) where 日付項目 = 20080101 テーブルAの主キー項目は全てテーブルBへInsertしており、Insert完了後のテーブルBの中身を見ると、まれに全く同じデータが2件出来ていることがあります。 このInsert into selectが実行されている間に、テーブルAに対して登録更新が行われることもあります。 色々と試してはいるのですが、原因が特定できずに困っております。 もし何かお気づきになられる方がいらっしゃいましたら、ご教示下さい。 よろしくお願い致します。
- 締切済み
- SQL Server
- insert時に日付のフィールドにnullを入れたい
テーブルに以下のフィールドがあります。 [No],[区分],[キーNo],[日付] このテーブルに日付のデータのない、以下のようなデータをインサートしたいのですが、 [No],[区分],[キーNo] 1 ,kbn1 , key1 strSQL1 = "INSERT INTO テーブル1" & " ([No],[区分],[キーNo],[日付])" _ & " VALUES ("1","kbn1","key1",NULL )" とするとエラーが出てしまいます。日付フィールドに何も入れないようにinsert文を書くにはどうしたらよいでしょうか。 すみません、アドバイス等宜しくお願いします。
- ベストアンサー
- Microsoft ASP
- select insertで複数テーブルから値を取得したい
環境:oracle9i select insertで、2つのテーブルから値を取得して、1つのテーブルにinsertすることは可能でしょうか? たとえば、以下の場合、どのようなSQL文を書けばよいか、アドバイスいただけますでしょうか。 よろしくお願いします。 insertしたいテーブル:A Aテーブルの項目:o,p,q,r,s,t 値を取得するテーブル:B,C Bテーブルの項目:o,p,q,r Cテーブルの項目:o,p,s,t oとpが主キーになっていて、それらが一致するBとCのデータを あわせて、Aにinsertしたいと思っています。 insert into A(o,p,q,r,s,t) select このあと、どのように書けばよいのかがわかりません。
- ベストアンサー
- Oracle
- 副問合せをいれたINSERT文で、問合せ結果が無い場合
副問合せをいれたINSERT文で、問合せ結果が無い場合 環境はSQL Server2005です。 テーブルA,テーブルBが存在し、テーブルAにレコード追加する際に一部をテーブルBから抽出して、 INSERTしようとしています。 [SQL文] INSERT INTO テーブルA(フィールド1, フィールド2, フィールド3,フィールド4・・・) SELECT 'AAA', 'BBB' ,B.フィールド3, B.フィールド4 ・・・ FROM テーブルB B WHERE ~ この場合、テーブルBにWHEREで指定した条件のレコードが存在しない場合はINSERTされなくなってしまいます。 存在しない場合は、該当のフィールドにはNULLをいれたいのですが、テーブルBからの結果が存在しない場合でも テーブルAにINSERTする方法はありますか?
- ベストアンサー
- SQL Server
お礼
会社でやってることなんでソースを載せられません・・。 そうですよね、アドバイスの仕様がないですね。申し訳ございません。 ありがとうございました。