47

In MySQL Workbench you can add COMMENTs to tables and columns in a MySQL database.

Does Sqlite support adding comments to tables and columns?

Micah Elliott
  • 9,600
  • 5
  • 51
  • 54
warvariuc
  • 57,116
  • 41
  • 173
  • 227

4 Answers4

62

I don't think it does. The "SQL As Understood By SQLite" page makes no mention of table or column comments nor does the CREATE TABLE or ALTER TABLE documentation.

Also, the Unsupported SQL wiki page has this:

2009-08-04: Table and column comments - I have scoured the doco and can't find anything about applying comments to tables or their columns.

Yes, that's a wiki page from 2009 but that note is supported by the rest of the documentation.

However, SQLite does preserve SQL comments that you put in your DDL. If you feed this to the sqlite3 CLI tool:

CREATE TABLE User
        -- A table comment
(
        uid INTEGER,    -- A field comment
        flags INTEGER   -- Another field comment
);

Then you get exactly that back from a .schema command:

sqlite> .schema
CREATE TABLE User
        -- A table comment
(
        uid INTEGER,    -- A field comment
        flags INTEGER   -- Another field comment
);

So you should be able to fake it if you can control the DDL used to create your tables.

mu is too short
  • 426,620
  • 70
  • 833
  • 800
  • 5
    As well as using `.schema`, you can obtain the same result as an SQL statement using: `SELECT name, sql FROM sqlite_master WHERE type='table' AND name='{$table}' ORDER BY name;` (where $table is the name of the table). See: http://stackoverflow.com/a/6617764/180733 – fooquency Feb 12 '14 at 23:27
  • 1
    This is great, though unfortunately the comments do not appear in SQLiteStudio's DDL view. – Timmmm Sep 21 '20 at 11:18
2

When creating a table using sqlite (I'm using sqlite3 in python), the COMMENT section is not supported.

This fails (works in full MySql syntax):

CREATE TABLE `Info` (
  `Test` VARCHAR(512) NOT NULL COMMENT 'Column info here'
);

This works (no COMMENT in the column declaration):

CREATE TABLE `Info` (
  `Test` VARCHAR(512) NOT NULL
);
Joao Coelho
  • 2,838
  • 4
  • 30
  • 36
1

(This isn't what the original poster was asking, but this is what I was looking for when I first found this question based on the keywords in the title.)

How to make comments in SQLite

There are two ways to make comments in SQLite code:

Hyphens

-- this is my comment
SELECT * FROM employees;

C-style

/* this is my comment */ 
SELECT * FROM employees;
Suragch
  • 484,302
  • 314
  • 1,365
  • 1,393
0

I appreciate that this is an old post but for what it's worth, you can add comments when creating a table in SQLITE3, in Python and in Java. Probably works for other languages as well.

You need to add new lines to your sql string as you would if you were typing in the command at the SQLITE3 prompt -

sql_str = 'CREATE TABLE properties (\nproperty TEXT NOT NULL, -- A property\nvalue TEXT -- The value of the property\n);'

When executed the table is created like so:

sqlite> .schema

CREATE TABLE properties (
property TEXT NOT NULL, -- A property
value TEXT -- The value of the property
);

I suspect that this works because the connector is actually echoing in the commands via the command prompt, rather than some sort of API.

KingsDev
  • 654
  • 5
  • 21
Kaliklipper
  • 355
  • 5
  • 19