MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / define_tables

Method define_tables

test/orm/test_defaults.py:25–148  ·  view source on GitHub ↗
(cls, metadata)

Source from the content-addressed store, hash-verified

23
24 @classmethod
25 def define_tables(cls, metadata):
26 dt = Table(
27 "dt",
28 metadata,
29 Column(
30 "id", Integer, primary_key=True, test_needs_autoincrement=True
31 ),
32 Column("col1", String(20)),
33 Column(
34 "col2", String(20), server_default=sa.schema.FetchedValue()
35 ),
36 Column(
37 "col3", String(20), sa.schema.FetchedValue(for_update=True)
38 ),
39 Column(
40 "col4",
41 String(20),
42 sa.schema.FetchedValue(),
43 sa.schema.FetchedValue(for_update=True),
44 ),
45 implicit_returning=False,
46 )
47
48 dialect_name = testing.db.dialect.name
49
50 for ins in (
51 sa.DDL(
52 "CREATE TRIGGER dt_ins AFTER INSERT ON dt "
53 "FOR EACH ROW BEGIN "
54 "UPDATE dt SET col2='ins', col4='ins' "
55 "WHERE dt.id = NEW.id; END"
56 ).execute_if(dialect="sqlite"),
57 sa.DDL(
58 "CREATE TRIGGER dt_ins ON dt AFTER INSERT AS "
59 "UPDATE dt SET col2='ins', col4='ins' "
60 "WHERE dt.id IN (SELECT id FROM inserted);"
61 ).execute_if(dialect="mssql"),
62 sa.DDL(
63 "CREATE TRIGGER dt_ins BEFORE INSERT "
64 "ON dt "
65 "FOR EACH ROW "
66 "BEGIN "
67 ":NEW.col2 := 'ins'; :NEW.col4 := 'ins'; END;"
68 ).execute_if(dialect="oracle"),
69 sa.DDL(
70 "CREATE TRIGGER dt_ins BEFORE INSERT "
71 "ON dt "
72 "FOR EACH ROW "
73 "EXECUTE PROCEDURE my_func_ins();"
74 ).execute_if(dialect="postgresql"),
75 sa.DDL(
76 "CREATE TRIGGER dt_ins BEFORE INSERT ON dt "
77 "FOR EACH ROW BEGIN "
78 "SET NEW.col2='ins'; SET NEW.col4='ins'; END"
79 ).execute_if(
80 callable_=lambda ddl, target, bind, **kw: bind.engine.name
81 not in ("oracle", "mssql", "sqlite", "postgresql")
82 ),

Callers

nothing calls this directly

Calls 5

TableClass · 0.90
ColumnClass · 0.90
StringClass · 0.90
execute_ifMethod · 0.80
listenMethod · 0.45

Tested by

no test coverage detected