Yep - oracle for example has hundreds of tables which hold metadata.

for example (this will look terrible due to the length of it but if you assume 
it's 3 lines; a title line, some underlining for each column and the data 
itself):


SQL> select * from all_tables where owner = 'FLYNNS' and table_name = 'QC11483';

OWNER                          TABLE_NAME                     TABLESPACE_NAME   
             CLUSTER_NAME                   IOT_NAME                       
STATUS     PCT_FREE   PCT_USED  INI_TRANS  MAX_TRANS INITIAL_EXTENT NEXT_EXTENT 
MIN_EXTENTS MAX_EXTENTS PCT_INCREASE  FREELISTS FREELIST_GROUPS LOGGING 
BACKED_UP   NUM_ROWS     BLOCKS EMPTY_BLOCKS  AVG_SPACE  CHAIN_CNT AVG_ROW_LEN 
AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE     INSTANCES  CACHE 
TABLE_LOCK SAMPLE_SIZE LAST_ANALYZED PARTITIONED IOT_TYPE     TEMPORARY 
SECONDARY NESTED BUFFER_POOL ROW_MOVEMENT GLOBAL_STATS USER_STATS DURATION      
  SKIP_CORRUPT MONITORING CLUSTER_OWNER                  DEPENDENCIES 
COMPRESSION DROPPED
------------------------------ ------------------------------ 
------------------------------ ------------------------------ 
------------------------------ -------- ---------- ---------- ---------- 
---------- -------------- ----------- ----------- ----------- ------------ 
---------- --------------- ------- --------- ---------- ---------- ------------ 
---------- ---------- ----------- ------------------------- ------------------- 
---------- ---------- ----- ---------- ----------- ------------- ----------- 
------------ --------- --------- ------ ----------- ------------ ------------ 
---------- --------------- ------------ ---------- 
------------------------------ ------------ ----------- -------
FLYNNS                         QC11483                        USERS             
                                                                           
VALID            10                     1        255          65536             
          1  2147483645                                         NO      N       
       61517       1000            0          0          0         108          
               0                   0          1          1     N ENABLED        
  61517 30/08/2017 16 NO                       N         N         NO     
DEFAULT     DISABLED     YES          NO                         DISABLED     
YES                                       DISABLED     DISABLED    NO

Executed in 0.141 seconds


There's something similar for SQL Server, DB2, ADDABAS, PostGres,, and so forth

S.

________________________________
From: Tutor <tutor-bounces+steve.flynn=capita.co...@python.org> on behalf of 
boB Stepp <robertvst...@gmail.com>
Sent: 14 October 2017 08:17
To: tutor
Subject: Re: [Tutor] How to test for the existence of a table in a sqlite3 db?

On Sat, Oct 14, 2017 at 2:11 AM, boB Stepp <robertvst...@gmail.com> wrote:

> So I get "None" as a result if the target table has not been created
> yet.  But if I *do* create the table I want:
>
> py3: with open('create_sqlite3_db.sql') as f:
> ...     sql = f.read()
> ...
> py3: c.executescript(sql)
> <sqlite3.Cursor object at 0x00000000026B4490>
> py3: tb_exists = "select name from sqlite_master where type='table'
> and name='BloodPressureReadings'"
> py3: tb_ck = c.execute(tb_exists).fetchone()
> py3: print(tb_ck)
> ('BloodPressureReadings',)
>
> So it is looking like I can use this technique to determine if I need
> to create the BloodPressureReadings table or not.  Am I on track here
> or is there a better technique?

It just occurred to me after sending the above, does something like
"sqlite_master" exist for other database programs than sqlite3?  Can I
abstract out "sqlite_master" and replace it with a variable so that I
can handle any kind of database?


--
boB
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor


This email is security checked and subject to the disclaimer on web-page: 
http://www.capita.co.uk/email-disclaimer.aspx
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to