Bảng A có ràng buộc khóa ngoài (loại) đến Bảng B (id). Tuy nhiên, loại không phải là null và id là nullable.Tìm thông tin cột hạn chế khóa ngoài giữa các bảng
Tôi đang cố gắng tạo truy vấn bằng cách sử dụng information_schema sẽ xem xét các ràng buộc khóa ngoài và khớp các loại cột và cột không thể xem để xem chúng có đồng bộ hay không, tuy nhiên tôi đang gặp sự cố với logic.
select kcu.table_name, kcu.column_name, c.column_type, c.is_nullable,kcu.referenced_table_name, kcu.referenced_column_name,c.column_type, c.is_nullable
from key_column_usage kcu
inner join columns c on c.table_schema=kcu.table_schema and c.column_name=kcu.column_name and c.table_name=kcu.table_name
where kcu.referenced_table_name='Table_B' and kcu.table_name='Table_A';
Tôi biết cú pháp này là không chính xác - đây chỉ là tất cả những gì tôi đã có thể kết hợp cho đến thời điểm này. Tôi muốn có điều này có thể được thực hiện cho mỗi bảng trong một cơ sở dữ liệu và có nó theo thứ tự của table_name, sau đó column_name. Nó có thể loại trừ các cột trong đó các trường column_type và is_nullable giống hệt nhau.
'refcol.column_type <> childcol.column_type' - Tôi nghĩ rằng không nên có thể. –
@Paul Spiegel liên quan đến các loại dữ liệu không khớp với điều kiện đã được yêu cầu. –