Hoe wijzig ik het gegevenstype voor een kolom in MySQL?

Ik wil het gegevenstype van meerdere kolommen wijzigen van float in int. Wat is de eenvoudigste manier om dit te doen?

Er zijn nog geen gegevens om je zorgen over te maken.


Antwoord 1, autoriteit 100%

http://dev.mysql.com/doc/ refman/5.1/nl/alter-table.html

ALTER TABLE tablename MODIFY columnname INTEGER;

Dit zal het datatype van de gegeven kolom veranderen

Afhankelijk van het aantal kolommen dat u wilt wijzigen, kunt u het beste een script genereren of een soort mysql-client-GUI gebruiken


Antwoord 2, autoriteit 5%

alter table table_name modify column_name int(5)

Antwoord 3, autoriteit 4%

Je kunt dit ook gebruiken:

ALTER TABLE [tablename] CHANGE [columnName] [columnName] DECIMAL (10,2)

Antwoord 4, autoriteit 2%

Als u alle kolommen van een bepaald type wilt wijzigen in een ander type, kunt u query’s genereren met een query als deze:

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>';

Als u bijvoorbeeld kolommen wilt wijzigen van tinyint(4)in bit(1), voert u dit als volgt uit:

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)';

en krijg een uitvoer zoals deze:

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;

!! Houdt geen unieke beperkingen vast, maar zou eenvoudig opgelost moeten worden met een andere if-parameter naar concat. Ik laat het aan de lezer over om dat zo nodig te implementeren..


Antwoord 5

Alter TABLE `tableName` MODIFY COLUMN `ColumnName` datatype(length);

Bijvoorbeeld:

Alter TABLE `tbl_users` MODIFY COLUMN `dup` VARCHAR(120);

Antwoord 6

Om het gegevenstype van de kolom te wijzigen, zijn er verandering
methode en wijzigmethode

ALTER TABLE student_info CHANGE roll_no roll_no VARCHAR(255);
ALTER TABLE student_info MODIFY roll_no VARCHAR(255);

Gebruik ook de change-methode

. om de veldnaam te wijzigen

ALTER TABLE student_info CHANGE roll_no identity_no VARCHAR(255);

Antwoord 7

U gebruikt de alter table ... change ...methode, bijvoorbeeld:

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)

Antwoord 8

https://dev.mySQL.com/doc /refman/8.0/en/alter-table.html

U kunt ook een standaardwaarde instellen voor de kolom Voeg gewoon het standaard sleutelwoord toe, gevolgd door de waarde.

ALTER TABLE [table_name] MODIFY [column_name] [NEW DATA TYPE] DEFAULT [VALUE];

Dit werkt ook voor MARIADB (geteste versie 10.2)


Antwoord 9

Als u de kolomgegevens wilt wijzigen, voeg dan een reactie toe, gebruik dit

ALTER TABLE [table_name] MODIFY [column_name] [new data type] DEFAULT [VALUE] COMMENT '[column comment]' 

Other episodes