0
沒有運行,我需要(不使用來自INFORMATION_SCHEMA TABLE_ROWS) 我試圖從執行的腳本來算表的確切行數在我的DB this postMySQL的 - 存儲過程
SET @tableSchema = 'Db_Warehouse';
SET SESSION group_concat_max_len = 10000000;
SET @rowCounts = (
SELECT GROUP_CONCAT(CONCAT('SELECT ''',TABLE_NAME,''', COUNT(*) FROM ', TABLE_NAME) SEPARATOR ' union all ')
FROM information_schema.tables WHERE table_schema = @tableSchema
);
PREPARE statement FROM @rowCounts;
EXECUTE statement;
但我不斷收到錯誤代碼1064:
<e>Query: PREPARE statement FROM @rowCounts
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table union all SELECT 'COX_ClientSatisfaction', COUNT(*) FROM COX_ClientSatisfa' at line 1
希望你能指教。
你有一個表,從字面上名爲'table'?你應該修改你的CONCAT()以在標識符周圍加上反勾號。 –
我也有評論,看起來你只是想獲得所有表中的行數。 'SHOW TABLE STATUS'不工作?或者相當於'SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES ...'我知道這些只是表格行的*估計值,但它們通常很接近,並且它會比COUNT(*)運行快許多倍每桌。 –
嗨@BillKarwin感謝您的建議 - 我沒有運行SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES ...但我需要這個來確定數據遷移是否成功,因爲這是一個估計數字是不同的兩個數據庫的 –