মাইএসকিউএলে একটি নির্দিষ্ট কলামের পরে একাধিক কলাম যুক্ত করা


361

আমি কলাম একটি টেবিল একাধিক কলাম যোগ কিন্তু সঠিক জায়গায় স্থাপনের জন্য প্রয়োজন পরে একটি কলাম নামক lastname

আমি এটি চেষ্টা করেছি:

ALTER TABLE `users` ADD COLUMN
(
    `count` smallint(6) NOT NULL,
    `log` varchar(12) NOT NULL,
    `status` int(10) unsigned NOT NULL
) 
AFTER `lastname`;

আমি এই ত্রুটি পেয়েছি:

আপনার এসকিউএল সিনট্যাক্সে আপনার একটি ত্রুটি রয়েছে; lastnameলাইন at এ ') এর পরে ' সঠিকভাবে বাক্য ব্যবহারের জন্য আপনার মাইএসকিউএল সার্ভার সংস্করণের সাথে সামঞ্জস্যপূর্ণ ম্যানুয়ালটি পরীক্ষা করুন


আমি কীভাবে এই জাতীয় একটি প্রশ্নের উত্তর ব্যবহার করতে পারি?


5
আপনি কোন উপভাষা বলছেন? আমার কাছে মাইএসকিএল লাগছে। কিন্তু ALTER TABLEবাক্যবিন্যাসের মধ্যে বাক্য গঠনটি খানিকটা ভিন্ন হয় ies
ড্যামিয়েন_ও_বিশ্বাসীরা


1
আমি মনে করি আপনি সংযুক্ত প্রতিটি কলামে আপনার একটি AFTER কীওয়ার্ড দরকার। এর অর্থ আপনার সর্বশেষ 3 নাম অন্তর্ভুক্ত হওয়া বা নতুন কলামে পৃথক পৃথক টেবিল বিবৃতি হওয়া দরকার কিনা তা আমি নিশ্চিত করে বলতে পারি না।
জেক

উত্তর:


728

এটা চেষ্টা কর

ALTER TABLE users
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `count`,
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `log`;

বাক্য গঠন পরীক্ষা করুন


6
[ একটি অতিরিক্ত তথ্যের মতো MULTIPLE] ADD, ALTER, DROP, এবং CHANGEক্লজ একটি একক মধ্যে অনুমতিপ্রাপ্ত ALTER TABLEবিবৃতি কমা দ্বারা পৃথক। এটি স্ট্যান্ডার্ড এসকিউএল-এর একটি মাইএসকিউএল এক্সটেনশন , যা টেবিল প্রতিবেদনের প্রতি প্রতিটি অনুচ্ছেদের মধ্যে কেবল একটির অনুমতি দেয়।
informatik01

@ আইয়াপ্পান আমরা কি স্কিল সার্ভারে এটি করতে পারি?
রওশন

77

আপনি যদি নির্দিষ্ট ক্ষেত্রের পরে একটি একক কলাম যুক্ত করতে চান তবে নিম্নলিখিত মাইএসকিউএল কোয়েরিতে কাজ করা উচিত:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL
    AFTER lastname

আপনি যদি একাধিক কলাম যুক্ত করতে চান, তবে আপনাকে কলামের জন্য প্রতিবার 'ADD' কমান্ডটি ব্যবহার করতে হবে। এটির জন্য এখানে মাইএসকিউএল কোয়েরি রয়েছে:

ALTER TABLE users
    ADD COLUMN count SMALLINT(6) NOT NULL,
    ADD COLUMN log VARCHAR(12) NOT NULL,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL
    AFTER lastname

লক্ষ্য করুন

দ্বিতীয় পদ্ধতিতে, সর্বশেষ ADD COLUMN কলামটি হ'ল প্রথম কলামটি হওয়া উচিত যা আপনি টেবিলে যুক্ত করতে চান।

যেমন: আপনি যোগ করতে চান তবে count, log, statusপরে সঠিক অনুক্রমে lastname, তারপর সিনট্যাক্স আসলে হবে:

ALTER TABLE users
    ADD COLUMN log VARCHAR(12) NOT NULL AFTER lastname,
    ADD COLUMN status INT(10) UNSIGNED NOT NULL AFTER lastname,
    ADD COLUMN count SMALLINT(6) NOT NULL AFTER lastname

3
দ্বিতীয় সংস্করণটি আমার জন্য পুরোপুরি ভালভাবে কাজ করেছে। আমি মাইএসকিএল 5.5.25 ব্যবহার করছি।
নরম্যান

কোড শেষ প্রান্তে অনুক্রমে কলাম যোগ নেই count, log, statusবা count, status, log?
সরফারাজ

1
দ্রষ্টব্য: আপনি যদি 'AFTER শেষ নাম' বিটটি যোগ না করেন, তবে সেই পরিবর্তনের টেবিলের তালিকায় আপনি যে সর্বশেষ কলামটি রেখেছিলেন সেটি প্রথমে কার্যকর হয় না। সুতরাং আপনি যখন টেবিলের টেবিলটি করুন কলাম ব্লাহ 1, যোগ করুন কলাম ব্লাহ 2; (কোনও 'আফটার' ধারা পরে নোট করুন), কলামটি blah1 প্রথমে সংযোজন করা হবে, তারপরে blah2।
হংকয় লি

10

আপনি কমা ব্যবহার করে একাধিক কলামের নাম উল্লেখ করতে পারবেন না ADD COLUMNADD COLUMNপ্রতিবার নতুন কলামটি সংজ্ঞায়িত করার সময় আপনাকে উল্লেখ করতে হবে।


4
আমি একটি +1 দিয়েছি তবে এটি গৃহীত উত্তরের একটি মন্তব্য হওয়া উচিত
mjsarfatti


3
ALTER TABLE `users` ADD COLUMN
`COLUMN NAME` DATATYPE(SIZE) AFTER `EXISTING COLUMN NAME`;

আপনি এটি দিয়ে এটি করতে পারেন, আমার পক্ষে ভাল কাজ করে।


1

একটি সম্ভাবনা হ'ল টেবিলের কলামগুলি পুনরায় অর্ডার করার বিষয়ে বিরক্ত করা এবং কলামগুলি যুক্ত করে কেবল এটি সংশোধন করা। তারপরে, এমন একটি দৃশ্য তৈরি করুন যাতে কলামগুলি আপনার পছন্দ অনুযায়ী ক্রমযুক্ত রয়েছে - ধরে নিচ্ছেন যে অর্ডারটি সত্যই গুরুত্বপূর্ণ। আপনি চান যে কোনও আদেশ প্রতিফলিত করতে ভিউ সহজেই পরিবর্তন করা যেতে পারে। যেহেতু আমি ভাবতে পারি না যে প্রোগ্রামার অ্যাপ্লিকেশনগুলির জন্য অর্ডারটি গুরুত্বপূর্ণ হবে, তাই সেই ম্যানুয়াল প্রশ্নের জন্য যেখানে এটি গুরুত্বপূর্ণ হতে পারে তার পক্ষে যথেষ্ট হওয়া উচিত।


4
যদি আমি আমার দুটি সেন্ট যুক্ত করতে পারি তবে টেবিল কলাম বা সারিগুলি কিনা "প্লেসমেন্ট" অক্ষত হওয়া উচিত। স্প্রেডশিটগুলি জিনিসগুলি খুঁজতে ডেটাবেসগুলি ব্যবহার করে না not
মাইক এস।

1

ALTER টেবিল listingএডিডি countINT (5), যোগ করুন logVARCHAR (200), যোগ করুন statusVARCHAR (20) পরিসংখ্যান পরে

এটি ভাল ফলাফল দেবে।


0

এটি আমার পক্ষে ভাল কাজ করে:

ALTER TABLE 'users'
ADD COLUMN 'count' SMALLINT(6) NOT NULL AFTER 'lastname',
ADD COLUMN 'log' VARCHAR(12) NOT NULL AFTER 'count',
ADD COLUMN 'status' INT(10) UNSIGNED NOT NULL AFTER 'log';

ভোট পেতে একটি মন্তব্য চুরি। সেই সাথী করবেন না।
এমবিউম্যান


0

বিকল্পভাবে:

ALTER TABLE users
ADD COLUMN `status` INT(10) UNSIGNED NOT NULL AFTER `lastname`,
ADD COLUMN `log` VARCHAR(12) NOT NULL AFTER `lastname`,
ADD COLUMN `count` SMALLINT(6) NOT NULL AFTER `lastname`;

আফটার স্টেটমেন্টটি স্ট্রিমলাইনে করার সময় সেগুলি আপনার পছন্দ অনুযায়ী ক্রমে রাখবে।

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