JSON Table Functions deprecated; trying to do so causes the server to issue a warning. Expect support for the nonstandard syntax to be removed in a future version of MySQL. When a value saved to a column is truncated, such as saving 3.14159 in a  DECIMAL(10,1)  column, a warning is issued independently of any  ON ERROR  option. When multiple values are truncated in a single statement, the warning is issued only once. Prior to MySQL 8.0.21, when the expression and path passed to this function resolved to JSON null, JSON_TABLE()  raised an error. In MySQL 8.0.21 and later, it returns SQL  NULL  in such cases, in accordance with the SQL standard, as shown here (Bug #31345503, Bug #99557): The following query demonstrates the use of  ON EMPTY  and  ON ERROR . The row corresponding to {"b":1}  is empty for the path  "$.a" , and attempting to save  [1,2]  as a scalar produces an error; these rows are highlighted in the output shown. Column names are subject to the usual rules and limitations governing table column names. See Section 9.2, “Schema Object Names” . All JSON and JSON path expressions are checked for validity; an invalid expression of either type causes an error. Each match for the  path  preceding the  COLUMNS  keyword maps to an individual row in the result table. For example, the following query gives the result shown here: 2378 mysql>  SELECT * mysql>  SELECT * ->  FROM -> JSON_TABLE( -> ’[{"a":"3"},{"a":2},{"b":1},{"a":0},{"a":[1,2]}]’, -> "$[*]" -> COLUMNS( -> rowid FOR ORDINALITY, -> ac VARCHAR(100) PATH "$.a" DEFAULT ’111’ ON EMPTY DEFAULT ’999’ ON ERROR, -> aj JSON PATH "$.a" DEFAULT ’{"x": 333}’ ON EMPTY, -> bx INT EXISTS PATH "$.b" -> ) -> ) AS tt; +-------+------+------------+------+ | rowid | ac | aj | bx | +-------+------+------------+------+ | 1 | 3 | "3" | 0 | | 2 | 2 | 2 | 0 | | 3 | 111 | {"x": 333} | 1 | | 4 | 0 | 0 | 0 | | 5 | 999 | [1, 2] | 0 | +-------+------+------------+------+ 5 rows in set (0.00 sec) mysql>  SELECT * -> FROM -> JSON_TABLE( -> ’[ {"c1": null} ]’, -> ’$[*]’ COLUMNS( c1 INT PATH ’$.c1’ ERROR ON ERROR ) -> ) as jt; +------+ | c1 | +------+ | NULL | +------+ 1 row in set (0.00 sec)