mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-25 18:34:32 +02:00
parent
405e092d59
commit
2ca63e3b2d
3 changed files with 61 additions and 0 deletions
|
|
@ -20,6 +20,9 @@ ForeignKey = namedtuple(
|
|||
"ForeignKey", ("table", "column", "other_table", "other_column")
|
||||
)
|
||||
Index = namedtuple("Index", ("seq", "name", "unique", "origin", "partial", "columns"))
|
||||
Trigger = namedtuple("Trigger", ("name", "table", "sql"))
|
||||
|
||||
|
||||
DEFAULT = object()
|
||||
|
||||
COLUMN_TYPE_MAPPING = {
|
||||
|
|
@ -146,6 +149,15 @@ class Database:
|
|||
def views(self):
|
||||
return [self[name] for name in self.view_names()]
|
||||
|
||||
@property
|
||||
def triggers(self):
|
||||
return [
|
||||
Trigger(*r)
|
||||
for r in self.conn.execute(
|
||||
"select name, tbl_name, sql from sqlite_master where type = 'trigger'"
|
||||
).fetchall()
|
||||
]
|
||||
|
||||
def execute_returning_dicts(self, sql, params=None):
|
||||
cursor = self.conn.execute(sql, params or tuple())
|
||||
keys = [d[0] for d in cursor.description]
|
||||
|
|
@ -561,6 +573,17 @@ class Table(Queryable):
|
|||
indexes.append(Index(**row))
|
||||
return indexes
|
||||
|
||||
@property
|
||||
def triggers(self):
|
||||
return [
|
||||
Trigger(*r)
|
||||
for r in self.db.conn.execute(
|
||||
"select name, tbl_name, sql from sqlite_master where type = 'trigger'"
|
||||
" and tbl_name = ?",
|
||||
(self.name,),
|
||||
).fetchall()
|
||||
]
|
||||
|
||||
def create(
|
||||
self,
|
||||
columns,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue