2017-03-23 6 views
0

私は、私と同じアイディアのラインに沿って多くの質問を見ましたが、私と全く同じ問題ではありません。ここで MySQLはselect max( `Column`)+1で空の​​結果を返す可能性があります

は私のクエリです:

insert into`quotes`(`QuoteID`,`QuoteRequestID`,`Number`,`UserID`,`Viewed`, 
    `_Latest`) 
select uuid(),uuid(), 
ifnull(max(`quotes`.`Number`),0)+1,'Some User ID',1,1 
from`quotes` 
join`quoterequests`using(`QuoteRequestID`) 
where`quoterequests`.`UserID`='Some User Other ID'; 

そして、これは私が取得していますエラーです:

エラーコード:1048列 'QuoteID'

だから、nullにすることはできません私の推測では、selectステートメントは何も返されていませんが、私はクエリ内でmax()を使用しているので、どのようにすることができますか?

insertの部分を削除して、それだけでselect文を実行すると、新しいUUID(間違いなくヌル値ではありません)とすべての結果が得られます。ここで何が起きてるの?これはMySQLのバグですか?私のMySQLのバージョンは5.7.14です。


EDIT

だから、私は別の選択で選択をラップする場合に予想されるとして、それが機能するようになりました考え出しました。それが解決策か回避策であるかどうかはわかりませんが、クエリが機能しています。

+0

uuid()関数でヌル値の行を返します。uuid()をチェックしてください。FUNCTION – scaisEdge

+0

@scaisEdge uuid()関数はnullを返さないことを明確に示しています。プラス私は挿入のないselect文の出力をチェックし、私が探していた結果を得た記事の本文に指定しました –

答えて

0

エラーを生成するトリガーがあるように思われます。それは私が考えることができる唯一の説明です。

+0

クエリのどのテーブルにもトリガがありません –

関連する問題