2026-06-10 09:49:35 +03:30
|
|
|
-- =============================================================================
|
|
|
|
|
-- الگوی 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';
|
2026-06-10 13:11:51 +03:30
|
|
|
SET @column_def = 'TINYINT(1) NOT NULL DEFAULT 0 COMMENT ''نمایش در صفحه داراییها''';
|
2026-06-10 09:49:35 +03:30
|
|
|
|
|
|
|
|
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;
|