私は、私と同じアイディアのラインに沿って多くの質問を見ましたが、私と全く同じ問題ではありません。ここで 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
だから、私は別の選択で選択をラップする場合に予想されるとして、それが機能するようになりました考え出しました。それが解決策か回避策であるかどうかはわかりませんが、クエリが機能しています。
uuid()関数でヌル値の行を返します。uuid()をチェックしてください。FUNCTION – scaisEdge
@scaisEdge uuid()関数はnullを返さないことを明確に示しています。プラス私は挿入のないselect文の出力をチェックし、私が探していた結果を得た記事の本文に指定しました –