SELECT
CONCAT ('alter table', table_name, 'alter column', column_name, 'set default null; ') as col, TABLE_NAME, COLUMN_NAME, DATA_TYPE
FROM
INFORMATION_SCHEMA.columns
WHERE
TABLE_SCHEMA = 'test' -- represents the database
AND
Data_type in ('varchar ', 'Char ')
AND
Not exists (SELECT 1 FROM KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'test' AND CONSTRAINT_NAME = 'Primary' AND TABLE_NAME = A. TABLE_NAME AND COLUMN_NAME = A. COLUMN_NAME)
The system tables in MYSQL are all sorted.
--- The following is the column where the data queried by MYSQL is not the primary key.
SELECT
TABLE_NAME, -- table name
COLUMN_NAME, -- field name
DATA_TYPE -- field type
FROM
'Columns 'a
WHERE
TABLE_SCHEMA = 'honghui2'
AND
Not exists (SELECT 1 FROM KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'honghui2' AND CONSTRAINT_NAME = 'Primary 'AND TABLE_NAME = A. TABLE_NAME AND COLUMN_NAME = A. COLUMN_NAME)