-- ============================================================================= -- الگوی copy/paste برای اضافه کردن امن یک ستون -- ============================================================================= -- 1) USE دیتابیس -- 2) @table_name و @column_name و @alter_sql را عوض کنید -- 3) @after_column اختیاری است — اگر خالی باشد بدون AFTER اضافه می‌شود -- ============================================================================= SET @db = DATABASE(); SET @table_name = 'products'; SET @column_name = 'show_in_assets'; SET @after_column = 'show'; SET @column_def = 'TINYINT(1) NOT NULL DEFAULT 1 COMMENT ''نمایش در صفحه دارایی‌ها'''; SET @sql = IF( (SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @table_name) = 0, CONCAT('SELECT ''skip: table '', @table_name, '' not found'' AS info'), IF( (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @table_name AND COLUMN_NAME = @column_name) > 0, CONCAT('SELECT ''skip: column '', @column_name, '' exists'' AS info'), IF( @after_column IS NOT NULL AND @after_column <> '' AND (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = @db AND TABLE_NAME = @table_name AND COLUMN_NAME = @after_column) > 0, CONCAT('ALTER TABLE `', @table_name, '` ADD COLUMN `', @column_name, '` ', @column_def, ' AFTER `', @after_column, '`'), CONCAT('ALTER TABLE `', @table_name, '` ADD COLUMN `', @column_name, '` ', @column_def) ) ) ); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;