मैं फ्लोट से इंट में कई कॉलम के डेटा प्रकार को बदलना चाहता हूं। ऐसा करने का सबसे सरल तरीका क्या है?
अभी तक चिंता का कोई डेटा नहीं है।
मैं फ्लोट से इंट में कई कॉलम के डेटा प्रकार को बदलना चाहता हूं। ऐसा करने का सबसे सरल तरीका क्या है?
अभी तक चिंता का कोई डेटा नहीं है।
जवाबों:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
ALTER TABLE tablename MODIFY columnname INTEGER;
यह दिए गए कॉलम के डेटाटाइप को बदल देगा
Howmany कॉलम के आधार पर आप इसे संशोधित करना चाहते हैं, यह एक स्क्रिप्ट उत्पन्न करने के लिए सबसे अच्छा हो सकता है, या कुछ प्रकार के mysql क्लाइंट GUI का उपयोग कर सकता है
यदि आप एक निश्चित प्रकार के सभी स्तंभों को दूसरे प्रकार में बदलना चाहते हैं, तो आप इस तरह से क्वेरी का उपयोग करके प्रश्न उत्पन्न कर सकते हैं:
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>';
उदाहरण के लिए, यदि आप से कॉलम बदलें करना चाहते tinyint(4)
करने के लिए bit(1)
, इसे इस तरह चलाएँ:
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)';
और इस तरह एक आउटपुट प्राप्त करें:
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;
!! अद्वितीय बाधाओं को नहीं रखता है, लेकिन आसानी से दूसरे- if
पैरामीटर के साथ तय किया जाना चाहिए concat
। अगर जरूरत पड़ी तो इसे लागू करने के लिए पाठक के पास छोड़ दूंगा।
Alter TABLE `tableName` MODIFY COLUMN `ColumnName` datatype(length);
Ex:
Alter TABLE `tbl_users` MODIFY COLUMN `dup` VARCHAR(120);
आप alter table ... change ...
विधि का उपयोग करते हैं , उदाहरण के लिए:
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)
स्तंभ डेटा प्रकार को बदलने के लिए परिवर्तन विधि और संशोधित विधि है
ALTER TABLE student_info CHANGE roll_no roll_no VARCHAR(255);
ALTER TABLE student_info MODIFY roll_no VARCHAR(255);
फ़ील्ड नाम बदलने के लिए भी परिवर्तन विधि का उपयोग करें
ALTER TABLE student_info CHANGE roll_no identity_no VARCHAR(255);
https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
आप कॉलम के लिए एक डिफ़ॉल्ट मान भी निर्धारित कर सकते हैं बस मूल्य के बाद DEFAULT कीवर्ड जोड़ें।
ALTER TABLE [table_name] MODIFY [column_name] [NEW DATA TYPE] DEFAULT [VALUE];
यह मारियाबीडी (परीक्षण संस्करण 10.2 का परीक्षण) के लिए भी काम कर रहा है
ALTER TABLE
), वास्तव में, काम करेंगे भले ही कॉलम में पहले से ही डेटा हो। हालाँकि, एक फ्लोट कॉलम को पूर्णांक कॉलम में परिवर्तित करने से यह किसी भी गैर-पूर्णांक मान को निकटतम पूर्णांक के लिए गोल कर देगा।