I want to get the column names of a table, but there a over million data in it. So I cannot use:
cursor.execute(\"SELECT * FROM table_name\")
print cursor.de
You can use SHOW columns:
cursor.execute("SHOW columns FROM table_name")
print [column[0] for column in cursor.fetchall()]
FYI, this is essentially the same as using desc:
cursor.execute("desc table_name")
print [column[0] for column in cursor.fetchall()]
Try
cursor.execute("SELECT * FROM table_name LIMIT 1")
or
cursor.execute("SELECT * FROM table_name WHERE 1=0")
Both prevent massive amounts of data being rattled. The second one is perhaps more elegant. I've just checked, and even this works:
>>>cursor.execute("SELECT LEFT(long_text,5) as short_text FROM table_name WHERE 1=0")
>>>print cursor.description
(('short_text', 253, 0, 5, 5, 31, 0),)
cursor.execute("SELECT * FROM table_name LIMIT 0")
cursor.column_names
Use the following to find other information
[v for v in dir(cursor) if v.find("_")]
The correct way to do this would be to use "SHOW columns FROM table_name"
however, you could also simply add a LIMIT
to your existing query:
cursor.execute("SELECT * FROM table_name LIMIT 0")
print cursor.description