this is some simple code but I just don\'t know why I can\'t use this word as the entity of the table
CREATE TABLE IF NOT EXISTS users(
key INT PRIMARY KEY N
You can still use key
if you want to. Just wrap it with backtick,
CREATE TABLE IF NOT EXISTS users
(
`key` INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
);
but as an advise, refrain from using any reserved keyword to avoid future problems. :)
Simple solution: Add a trailing underscore to every name.
The SQL spec SQL:2011 explicitly promises to never use a trailing underscore on any keyword, neither now nor in the future.
Example: key_
See my answer to a similar question, h2 database column name is reserved word.