CREATE TABLE jsonTable2 ( a INTEGER, b INTEGER, c INTEGER NOT NULL DEFAULT 5, j JSON CHARACTER SET LATIN );
次のINSERT文では、入力JSONデータに列cの値が含まれていません。ただし、入力JSONデータは文字列リテラルであるため、列cに定義されたDEFAULT値が挿入されます。
INSERT INTO jsonTable2 JSON '{"a":1234,"b":2}';
*** Insert completed. One row added. ***
CREATE TABLE jsonTable5 ( a INTEGER, b INTEGER, j JSON AUTO COLUMN NOT NULL );
この例では、入力JSONデータにjsonTable 5のどの列とも一致しない余分なデータが含まれています。余分なデータはj AUTO COLUMNに挿入されます。3番目のINSERT文には余分なデータが含まれず、AUTO COLUMNはNOT NULLとして定義されます。したがって、'{}'が挿入されます。
INS jsonTable5 JSON '{"a":1,"b":1,"extra":1}'; INS jsonTable5 JSON '{"a":2,"b":2,"extra1":2,"extra2":222}'; INS jsonTable5 JSON '{"a":3,"b":3};
SELECT * FROM jsonTable5 ORDER BY 1;
a b j ----------- ----------- --------------------------------------------------- 1 1 {"extra":"1"} 2 2 {"extra1":"2","extra2":"222"} 3 3 {}