You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CAST(SUBSTR(c.type, INSTR(c.type, '(') + 1, INSTR(c.type, ',') - INSTR(c.type, '(') - 1) AS INTEGER) AS Precision,
14745
+
CAST(SUBSTR(c.type, INSTR(c.type, ',') + 1, INSTR(c.type, ')') - INSTR(c.type, ',') - 1) AS INTEGER) AS Scale
14745
14746
FROM sqlite_master m
14746
14747
JOIN PRAGMA_TABLE_INFO(m.name) c
14747
14748
WHERE m.type IN ('table', 'view')
@@ -14752,67 +14753,26 @@ ORDER BY tbl_name, cid;";
14752
14753
protected override string ForeignKeySQL()
14753
14754
{
14754
14755
return @"
14755
-
SELECT fkData.FK_Table,
14756
-
fkData.FK_Column,
14757
-
fkData.PK_Table,
14758
-
fkData.PK_Column,
14759
-
fkData.Constraint_Name,
14760
-
fkData.fkSchema,
14761
-
fkData.pkSchema,
14762
-
fkData.primarykey,
14763
-
fkData.ORDINAL_POSITION,
14764
-
fkData.CascadeOnDelete,
14765
-
fkData.IsNotEnforced
14766
-
FROM (SELECT FK.name AS FK_Table,
14767
-
FkCol.name AS FK_Column,
14768
-
PK.name AS PK_Table,
14769
-
PkCol.name AS PK_Column,
14770
-
OBJECT_NAME(f.object_id) AS Constraint_Name,
14771
-
SCHEMA_NAME(FK.schema_id) AS fkSchema,
14772
-
SCHEMA_NAME(PK.schema_id) AS pkSchema,
14773
-
PkCol.name AS primarykey,
14774
-
k.constraint_column_id AS ORDINAL_POSITION,
14775
-
CASE WHEN f.delete_referential_action = 1 THEN 1
14776
-
ELSE 0
14777
-
END AS CascadeOnDelete,
14778
-
f.is_disabled AS IsNotEnforced,
14779
-
ROW_NUMBER() OVER (PARTITION BY FK.name, FkCol.name, PK.name, PkCol.name, SCHEMA_NAME(FK.schema_id), SCHEMA_NAME(PK.schema_id) ORDER BY f.object_id) AS n
14780
-
FROM sys.objects AS PK
14781
-
INNER JOIN sys.foreign_keys AS f
14782
-
INNER JOIN sys.foreign_key_columns AS k
14783
-
ON k.constraint_object_id = f.object_id
14784
-
INNER JOIN sys.indexes AS i
14785
-
ON f.referenced_object_id = i.object_id
14786
-
AND f.key_index_id = i.index_id
14787
-
ON PK.object_id = f.referenced_object_id
14788
-
INNER JOIN sys.objects AS FK
14789
-
ON f.parent_object_id = FK.object_id
14790
-
INNER JOIN sys.columns AS PkCol
14791
-
ON f.referenced_object_id = PkCol.object_id
14792
-
AND k.referenced_column_id = PkCol.column_id
14793
-
INNER JOIN sys.columns AS FkCol
14794
-
ON f.parent_object_id = FkCol.object_id
14795
-
AND k.parent_column_id = FkCol.column_id) fkData
14796
-
WHERE fkData.n = 1 -- Remove duplicate foreign keys";
14756
+
SELECT m.name AS FK_Table,
14757
+
p.[from] AS FK_Column,
14758
+
p.[table] AS PK_Table,
14759
+
p.[to] AS PK_Column,
14760
+
'FK_' || TRIM(m.name) || '_' || TRIM(p.[to]) as Constraint_Name,
14761
+
'main' as fkSchema,
14762
+
'main' as pkSchema,
14763
+
p.[to] AS primarykey,
14764
+
p.id + 1 as ORDINAL_POSITION,
14765
+
case when P.on_delete is 'CASCADE' then 1 else 0 end as CascadeOnDelete,
14766
+
0 as IsNotEnforced
14767
+
FROM sqlite_master m
14768
+
JOIN PRAGMA_FOREIGN_KEY_LIST(m.name) p ON m.name != p.[table]
0 commit comments