fix: when import MySQL database via smart query fix PKs import

This commit is contained in:
johnnyfish
2024-09-03 10:29:18 +03:00
committed by Guy Ben-Aharon
parent d4f226e40a
commit dac6059853
2 changed files with 20 additions and 6 deletions

View File

@@ -46,8 +46,12 @@ export const getMySQLQuery = (
FROM (SELECT TABLE_SCHEMA,
TABLE_NAME AS pk_table,
COLUMN_NAME AS pk_column,
CONCAT('PRIMARY KEY (', GROUP_CONCAT(COLUMN_NAME ORDER BY ORDINAL_POSITION SEPARATOR ', '), ')') AS pk_def
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
(SELECT CONCAT('PRIMARY KEY (', GROUP_CONCAT(inc.COLUMN_NAME ORDER BY inc.ORDINAL_POSITION SEPARATOR ', '), ')')
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE as inc
WHERE inc.CONSTRAINT_NAME = 'PRIMARY' and
outc.TABLE_SCHEMA = inc.TABLE_SCHEMA and
outc.TABLE_NAME = inc.TABLE_NAME) AS pk_def
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE as outc
WHERE CONSTRAINT_NAME = 'PRIMARY'
GROUP BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
ORDER BY TABLE_SCHEMA, TABLE_NAME, MIN(ORDINAL_POSITION)) AS pk
@@ -178,10 +182,16 @@ export const getMySQLQuery = (
SELECT TABLE_SCHEMA,
TABLE_NAME AS pk_table,
COLUMN_NAME AS pk_column,
CONCAT('PRIMARY KEY (', GROUP_CONCAT(COLUMN_NAME ORDER BY ORDINAL_POSITION SEPARATOR ', '), ')') AS pk_def
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
(SELECT CONCAT('PRIMARY KEY (', GROUP_CONCAT(inc.COLUMN_NAME ORDER BY inc.ORDINAL_POSITION SEPARATOR ', '), ')')
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE as inc
WHERE inc.CONSTRAINT_NAME = 'PRIMARY' and
outc.TABLE_SCHEMA = inc.TABLE_SCHEMA and
outc.TABLE_NAME = inc.TABLE_NAME) AS pk_def
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE as outc
WHERE CONSTRAINT_NAME = 'PRIMARY'
GROUP BY TABLE_SCHEMA, TABLE_NAME
and table_schema LIKE IFNULL(NULL, '%')
AND table_schema = DATABASE()
GROUP BY TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
) AS pk), ''),
'], "columns": [',
IFNULL((SELECT GROUP_CONCAT(