মাইএসকিউএলে একটি কলামের নামকরণে ত্রুটি


434

আমি কীভাবে টেবিলের কলামটির নাম পরিবর্তন করব xyz? কলামগুলি হ'ল:

Manufacurerid, name, status, AI, PK, int

আমি নাম পরিবর্তন করতে চাই manufacturerid

আমি পিএইচপিএমআইএডমিন প্যানেলটি ব্যবহার করার চেষ্টা করেছি, তবে আমি এই ত্রুটিটি পেয়েছি:

MySQL said: Documentation
#1025 - Error on rename of '.\shopping\#sql-c98_26' to '.\shopping\tblmanufacturer' (errno: 150)

5
আপনি কোনও টেবিলটি পরিবর্তনের চেষ্টা করছেন যা এতে একটি বিদেশী কী রেফারেন্স রয়েছে।
মেলোসুন

উত্তর:


747

লোন রেঞ্জারটি খুব কাছে ... আসলে, আপনাকে পুনরায় নামক কলামটির ডেটাটাইপ নির্দিষ্ট করতে হবে। উদাহরণ স্বরূপ:

ALTER TABLE `xyz` CHANGE `manufacurerid` `manufacturerid` INT;

মনে রাখবেন:

  • আপনার কলামের ডেটা টাইপ যা দরকার তা দিয়ে INT প্রতিস্থাপন করুন (প্রয়োজনীয়)
  • টিলডে / ব্যাকটিক (`) isচ্ছিক

12
আমি মনে করি যে কলামটিতে উত্তরের ত্রুটি পাওয়ার জন্য একটি বিদেশী কী রয়েছে যাতে আপনাকে বিদেশী কী ফেলে দিতে হবে, টেবিলটি পরিবর্তন করতে হবে এবং বিদেশী কী যুক্ত করতে হবে (প্রথমে ব্যাকআপ নেওয়া ভাল) এবং আপনি কেবলমাত্র ডান ক্লিকটিতে নাম পরিবর্তন করে এটি পরিবর্তন করতে পারবেন টেবিলে - টেবিল পরিবর্তন করুন
ক্রিস সিম

7
মনে রাখবেন যে এই সমাধানে আপনি অন্যান্য সমস্ত কলাম সংজ্ঞা যেমন নুলিযোগ্যতা, ডিফল্ট মান ইত্যাদি হারাবেন (দেখুন: stackoverflow.com/questions/8553130/… )।
দেজন

সুতরাং মূলত, পরিবর্তে MODIFY column <TYPE>(একটি কলাম পুনরায় সংজ্ঞায়নের জন্য), তাই না CHANGE column new_column <TYPE>?
mwfearnley

SHOW CREATE TABLE table_nameবর্তমান কলাম সংজ্ঞাটি বের করতে আপনাকে সহায়তা করতে পারে
মিঃ ডেথলেস

@ ডিজন ধন্যবাদ এবং এটি সত্যই বিরক্তিকর, যখন আপনি অন্য কোনও সংশোধককে নির্দিষ্ট করতে না পারেন তখন কেন একটি প্রকারের প্রয়োজন? হয় একটি টাইপ + পরিবর্তনকারী প্রয়োজন বা এটি প্রয়োজন হয় না।
জেম্যাক

43

স্ট্যান্ডার্ড মাইএসকিএল নাম পরিবর্তন বিবৃতিটি হ'ল:

ALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name 
CHANGE [COLUMN] old_col_name new_col_name column_definition 
[FIRST|AFTER col_name]

এই উদাহরণের জন্য:

ALTER TABLE xyz CHANGE manufacurerid manufacturerid datatype(length)

তথ্যসূত্র: MYSQL 5.1 টেবিল সিনট্যাক্স


40

মাইএসকিউএল এর জন্য:

ALTER TABLE `table_name` CHANGE `old_name` `new_name` VARCHAR(255) NOT NULL;

মৌখিক জন্য:

ALTER TABLE `table_name` RENAME COLUMN `old_name` TO `new_name`;

3
আপনি "মাইএসকিউএল-এর কলামের নাম ব্যবহার করলে এটি কাজ করে না । পরিবর্তে কিছুই বা Use ব্যবহার করবেন না।
অ্যালেক্সিস নো

13

সম্পাদনা

আপনি ক্ষেত্রগুলির নাম ব্যবহার করে এটি ব্যবহার করতে পারেন:

ALTER TABLE xyz CHANGE manufacurerid manufacturerid INT

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


1
# 1064 - আপনার এসকিউএল সিনট্যাক্সে আপনার একটি ত্রুটি রয়েছে; 1 ম লাইনে '' এর নিকটবর্তী সঠিক
সংশ্লেষের

17
এটি দরকারী হবে, তবে আপনি যে ডকুমেন্টেশনটি উদ্ধৃত করেছেন তার সাথে এটি সত্য নয়: "আপনি যখন পরিবর্তন বা পরিবর্তন ব্যবহার করেন, কলাম_সংশোধনে অবশ্যই ডেটা টাইপ এবং নতুন কলামে প্রযোজ্য সমস্ত বৈশিষ্ট্য অন্তর্ভুক্ত থাকতে হবে [...] মূল সংজ্ঞাটিতে উপস্থিত বৈশিষ্ট্যগুলি তবে নতুন সংজ্ঞাটির জন্য নির্দিষ্ট করে দেওয়া হয় না forward "
আর্টফুল্রবট

এটি "অল্টার টেবিলে জাইজেড চেঞ্জ ম্যানুফ্যাকিউরিড ম্যানুফ্যাকিউরিড ম্যানুফ্যাকিউরিড ডেটাটাইপ (দৈর্ঘ্য)" হতে হবে
ক্রিস সিম

7

একটি সিনট্যাক্স সমস্যা আছে, কারণ পরিবর্তিত কমান্ডের সঠিক বাক্য গঠন ALTER TABLE tablename CHANGE OldColumnName NewColunmName DATATYPE;


2

মাইএসকিউএল 5.x এর সাহায্যে আপনি ব্যবহার করতে পারেন:

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name DATATYPE NULL DEFAULT NULL;


0

টেবিল পরিবর্তন পরিবর্তন করুন;

উদাহরণ:

ALTER TABLE global_user CHANGE deviceToken deviceId VARCHAR(255) ;

-5

বাক্য গঠন

দ্বিতীয় টেবিল TABLE_NAME পুনঃনামকরণ কলাম পুরাতন কলামের নামের করতে নতুন কলাম নাম ;

উদাহরণ:

দ্বিতীয় টেবিল গ্রন্থাগার পুনঃনামকরণ কলাম খরচ করতে মূল্য ;


2
মাইএসকিএল-এ পুনরায় নামকরণের জন্য টেবিলটির নামকরণ কোনও কলাম নয়, কলামটির নাম পরিবর্তন করতে CHANGE ব্যবহার করা হয় RE
জাথিন

প্রশ্নটি মাইএসকিউএলের জন্য - এটি মাইএসকিউএলে বৈধ সিনট্যাক্স নয়।
tjbp

অন্যরা যেমন খেয়াল করে, দয়া করে বৈধ মাইএসকিউএল সিনট্যাক্স ব্যবহার করুন।
বোকা 4 ইয়েসেস

অবৈধ মাইএসকিএল সিনট্যাক্স রয়েছে।
হাসিব কামাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.