Birden çok sütun veri türünü float int değiştirmek istiyorum. Bunu yapmanın en basit yolu nedir?
Endişelenecek henüz bir veri yok.
Birden çok sütun veri türünü float int değiştirmek istiyorum. Bunu yapmanın en basit yolu nedir?
Endişelenecek henüz bir veri yok.
Yanıtlar:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
ALTER TABLE tablename MODIFY columnname INTEGER;
Bu, verilen sütunun veri türünü değiştirir
Değiştirmek istediğiniz sütunlara bağlı olarak, bir komut dosyası oluşturmak veya bir çeşit mysql istemci GUI'si kullanmak en iyisi olabilir.
Belirli bir türdeki tüm sütunları başka bir türe değiştirmek istiyorsanız, aşağıdaki gibi bir sorgu kullanarak sorgular oluşturabilirsiniz:
select distinct concat('alter table ',
table_name,
' modify ',
column_name,
' <new datatype> ',
if(is_nullable = 'NO', ' NOT ', ''),
' NULL;')
from information_schema.columns
where table_schema = '<your database>'
and column_type = '<old datatype>';
Örneğin, sütunları ile arasında değiştirmek istiyorsanız, sütunu şu tinyint(4)
şekilde bit(1)
çalıştırın:
select distinct concat('alter table ',
table_name,
' modify ',
column_name,
' bit(1) ',
if(is_nullable = 'NO', ' NOT ', ''),
' NULL;')
from information_schema.columns
where table_schema = 'MyDatabase'
and column_type = 'tinyint(4)';
ve şöyle bir çıktı alın:
alter table table1 modify finished bit(1) NOT NULL;
alter table table2 modify canItBeTrue bit(1) NOT NULL;
alter table table3 modify canBeNull bit(1) NULL;
!! Benzersiz kısıtlamaları tutmaz, ancak başka bir if
parametre ile kolayca sabitlenmelidir concat
. Gerekirse uygulamayı okuyucuya bırakacağım ..
Alter TABLE `tableName` MODIFY COLUMN `ColumnName` datatype(length);
Örn:
Alter TABLE `tbl_users` MODIFY COLUMN `dup` VARCHAR(120);
alter table ... change ...
Yöntemi kullanırsınız, örneğin:
mysql> create table yar (id int);
Query OK, 0 rows affected (0.01 sec)
mysql> insert into yar values(5);
Query OK, 1 row affected (0.01 sec)
mysql> alter table yar change id id varchar(255);
Query OK, 1 row affected (0.03 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> desc yar;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
1 row in set (0.00 sec)
Sütun veri türünü değiştirmek için değiştirme yöntemi ve değiştirme yöntemi vardır
ALTER TABLE student_info CHANGE roll_no roll_no VARCHAR(255);
ALTER TABLE student_info MODIFY roll_no VARCHAR(255);
Alan adını değiştirmek için change yöntemini de kullanın
ALTER TABLE student_info CHANGE roll_no identity_no VARCHAR(255);
https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
Sütun için varsayılan bir değer de ayarlayabilirsiniz.
ALTER TABLE [table_name] MODIFY [column_name] [NEW DATA TYPE] DEFAULT [VALUE];
Bu aynı zamanda MariaDB için de çalışıyor (test edilmiş sürüm 10.2)
ALTER TABLE
) yanıtları aslında sütun zaten veri içeriyor olsa bile işe yarayacaktır. Ancak, bir kayan sütunu bir tamsayı sütununa dönüştürmek, içindeki tamsayı olmayan değerlerin en yakın tamsayıya yuvarlanmasına neden olur.