মাইএসকিএলে পরবর্তী অটো-ইনক্রিমেন্ট আইডি কীভাবে পাবেন


113

এটি সারণীতে সন্নিবেশ করানোর জন্য কীভাবে পরবর্তী আইডিটি মাইএসকিএলে পাবেন

INSERT INTO payments (date, item, method, payment_code)
VALUES (NOW(), '1 Month', 'paypal', CONCAT("sahf4d2fdd45", id))

1
একটি auto_incrementকলাম ব্যবহার করুন
নিটল

আপনি কি এখন সন্নিবেশ করানোর জন্য পরবর্তী আইডি, বা সারিটির আইডি চান ? অর্থাত, পেমেন্ট কোডের শেষে থাকা আইডিটি কি সেই সারির আইডি হওয়া উচিত যেখানে পেমেন্ট কোডটি সঞ্চিত থাকে?
মাইক

আমি বর্তমানে যে সারিটি সন্নিবেশ করছি তার আইডি
ফ্যাসারফট

6
সেক্ষেত্রে মানগুলি যখন আপনি পুনরুদ্ধার করবেন তখন তা যুক্ত করুন, যখন আপনি সেগুলি সন্নিবেশ করানোর সময় নয়। এটি সেভাবে অনেক সহজ, এবং আপনি ভুল আইডি পাওয়া বা একটি আপডেট চালানোর বিষয়টি অস্বীকার করেছেন - আপনি সবেমাত্র সন্নিবেশ করানো সারিটি অন্য ক্লায়েন্টের দ্বারা অনুরোধ করা হয়েছিল, আপডেটটি চালানোর সুযোগ পাওয়ার আগেই কী ঘটবে তা ভেবে দেখুন: ক্লায়েন্ট একটি অবৈধ পেমেন্ট কোড দিয়ে শেষ হবে। স্বল্প ট্র্যাফিক সিস্টেমে এটি নাও হতে পারে তবে আমি ঝুঁকি নেওয়ার বিষয়টি দেখতে পাচ্ছি না।
মাইক

... বা @ বাইনারি এলভি হিসাবে উল্লেখ করা হয়েছে যে, রিসোর্স লক করাও সমস্যার সমাধান করতে পারে। দেখুন: dev.mysql.com/doc/refman/5.5/en/lock-tables.html
মাইকে

উত্তর:


12

LAST_INSERT_ID()আপনার এসকিউএল কোয়েরি থেকে ব্যবহার করুন ।

অথবা

আপনি mysql_insert_id()পিএইচপি ব্যবহার করে এটি পেতে ব্যবহার করতে পারেন।


13
@ সরফরাজ: প্রশ্নটি আপনি উল্লেখ করার মতো নেক্সট আইডি সম্পর্কে সর্বশেষ নয় LAST_INSERT_ID()
ফিলিপ পেরেইরা

1
সারণি যদি সারণীতে মুছে ফেলা হয় তবে সর্বাধিকটি ভুল হবে
পিটারচাউলা

'17 - মাইএসকিএল * ফাংশন থেকে কেবল একটি টীকা নষ্ট হয়েছে - উপরের কাজটি করা যেতে পারেmysqli_insert_id
ট্রে বেক

কে উত্তর হিসাবে চিহ্নিত করেছে? প্রশ্নটি পরবর্তী সন্নিবেশ আইডিটি শেষ নয়।
অমিত শাহ

251

তুমি ব্যবহার করতে পার

SELECT AUTO_INCREMENT
FROM information_schema.tables
WHERE table_name = 'table_name'
AND table_schema = DATABASE( ) ;

অথবা আপনি যদি তথ্য_সেমিমা ব্যবহার করতে না চান তবে আপনি এটি ব্যবহার করতে পারেন

SHOW TABLE STATUS LIKE 'table_name'

প্রথম দুটি বিকল্পের জন্য ধন্যবাদ .. তবে তৃতীয়টি পিএইচপি থেকে কেবল দ্বিতীয় নম্বর ডেকেছে .. বড় ডেটাবেজে এটি কী দ্রুত করে তোলে তা নিশ্চিত নয় ...
জেরার্ড ওনিল

1
@ জেরার্ডোনিল এটিকে সরিয়ে দিয়েছেন
রবি 404

3
কারণ একটি ক্যাশে information_schema.tables থেকে তথ্য পুনরুদ্ধার করতে ব্যবহার করা হয়, এই সমাধান মাইএসকিউএল 8. জন্য কোন কাজ
ব্রুনো

1
@ ব্রুনো আপনি কি রেফারেন্স পোস্ট করতে পারবেন?
মোভেরেকেক

1
Dev.mysql.com/doc/refman/8.0/en/…TABLES.AUTO_INCREMENT ক্যাশে করা এই অফিশিয়াল ডক স্টেট । মাইএসকিএল ব্লগেরও এটি সম্পর্কে বেশ কয়েকটি পোস্ট রয়েছে তবে তারা যে সিস্টেমটি উল্লেখ করেছেন তা পরিবর্তনযোগ্য বলে মনে হচ্ছে: mysqlserverteam.com/… mysqlserverteam.com/…
ব্রুনো

50

আপনি এটি করে পরবর্তী অটো-ইনক্রিমেন্ট মান পেতে পারেন :

SHOW TABLE STATUS FROM tablename LIKE Auto_increment
/*or*/
SELECT `auto_increment` FROM INFORMATION_SCHEMA.TABLES
WHERE table_name = 'tablename'

মনে রাখবেন যে টেবিলটি পরিবর্তন করতে আপনার এটি ব্যবহার করা উচিত নয় , পরিবর্তে স্বয়ংক্রিয়ভাবে এটি করার জন্য একটি অটো_সংশোধক কলাম ব্যবহার করুন।
সমস্যাটি হ'ল last_insert_id()পূর্ববর্তী এবং এটি বর্তমান সংযোগের মধ্যে গ্যারান্টিযুক্ত হতে পারে।
এই শিশুটি সম্ভাব্য এবং তাই সংযোগ অনুযায়ী অনন্য নয় এবং নির্ভর করা যায় না।
কেবলমাত্র একটি একক সংযোগের ডেটাবেজে এটি কাজ করবে তবে একক সংযোগের ডেটাবেজে আজ কাল একাধিক সংযোগ ডাটাবেস হওয়ার অভ্যাস রয়েছে।

দেখা: SHOW TABLE STATUS


5
আমি এটি ডাউনভিট করি নি, তবে সর্বশেষ অটো ইনক্রিমেন্টিং মানটি ব্যবহার করার চেষ্টা করার ক্ষেত্রে সমস্যাটি হ'ল আপনি এটি ব্যবহার করতে আসা সময়টির মধ্যে এটি শেষ নাও হতে পারে - যত তাড়াতাড়ি নির্বাচন করুন এবং তারপরে INSERT কার্যকর করা হবে।
মাইক

@ মাইক, যদি এটি একক ক্যোয়ারিতে করা হয়? এরকম কিছু insert into table_name (field1, field2) select 'constant', auto_increment from information_schema.tables where table_name = 'table_name'? আমি after insertlast_insert_id()
ট্রিগারটিতে

1
@ বাইনারিএলভি: নির্বাচন এবং ইনসার্টের মধ্যে ব্যবধান যত কম হবে, মান পরিবর্তনের সম্ভাবনা তত কম হবে, তবে এটি পুরোপুরি কার্যকর হবে না। ডাটাবেজে প্রতি মিনিটে হাজার হিট সহ এমন একটি সিস্টেম কল্পনা করুন - মানটির পরিবর্তনের পরিবর্তনের সম্ভাবনা নাটকীয়ভাবে বৃদ্ধি পেয়েছে। টেবিল বা সারি লক করা এটি প্রতিরোধ করতে পারে যদি এটি একটি একক ক্যোয়ারী হিসাবে সম্পন্ন করা হয় তবে এটি ডাটাবেস ইঞ্জিনের একটি বিশেষ আচরণের উপর নির্ভর করে যা ভালভাবে নথিভুক্ত করা যায় না। আমিও UPDATEযদি পরে থাকতাম তবে আমি বরং প্রদর্শনের সময় দু'জনকেই সম্মতি জানাতে এবং সমস্ত ঝামেলা বাঁচাতে চাই।
মাইক

3
SHOW TABLE STATUSদেখতে আশা database nameপর FROMএবং 'table name pattern'পরে LIKE
এক্স-ইউরি

2
যেহেতু একটি ক্যাশে তথ্য_সেমি.টি.টেবিলগুলি থেকে ডেটা পুনরুদ্ধার করতে ব্যবহৃত হয়, তাই এই সমাধানটি আরকিউএসএল ৮ এর জন্য আর কাজ করে না
ব্রুনো

14

এটি মাইএসকিউএল ডাটাবেসের জন্য স্বয়ংক্রিয় বর্ধন মানটি ফিরিয়ে দেবে এবং আমি অন্যান্য ডাটাবেসের সাথে পরীক্ষা করিনি। দয়া করে মনে রাখবেন যে আপনি যদি অন্য কোনও ডাটাবেস ব্যবহার করেন তবে ক্যোয়ারের বাক্য গঠনটি ভিন্ন হতে পারে।

SELECT AUTO_INCREMENT 
FROM information_schema.tables
WHERE table_name = 'your_table_name'
     and table_schema = 'your_database_name';

SELECT AUTO_INCREMENT 
FROM information_schema.tables
WHERE table_name = 'your_table_name'
     and table_schema = database();

তথ্য_সেমি.টি.একটি টেবিলের নাম = 'আপনার_সারণযোগ্য_নাম' এবং টেবিল_সেমিমা = 'আপনার_ড্যাটাবেস_নাম' থেকে স্বতন্ত্র নির্বাচন করুন;
এলজে

10

শীর্ষের উত্তরটি একটি সমাধানের জন্য পিএইচপি মাইএসকিউএল_ ব্যবহার করে, ভেবেছিলাম আমি এটি অর্জনের জন্য একটি আপডেট হওয়া পিএইচপি মাইএসকিউএল_ সমাধানটি ভাগ করব । এই এক্সপামলটিতে কোনও ত্রুটি আউটপুট নেই!

$db = new mysqli('localhost', 'user', 'pass', 'database');
$sql = "SHOW TABLE STATUS LIKE 'table'";
$result=$db->query($sql);
$row = $result->fetch_assoc();

echo $row['Auto_increment'];

একটি টেবিলের মধ্যে আগত পরবর্তী অটো বর্ধন শুরু করে।


যেহেতু একটি ক্যাশে তথ্য_সেমি.টি.টেবিলগুলি থেকে ডেটা পুনরুদ্ধার করতে ব্যবহৃত হয়, তাই এই সমাধানটি আরকিউএসএল ৮ এর জন্য আর কাজ করে না
ব্রুনো

9

পিএইচপি-তে আপনি এটি ব্যবহার করতে পারেন:

$query = mysql_query("SELECT MAX(id) FROM `your_table_name`");
$results = mysql_fetch_array($query);
$cur_auto_id = $results['MAX(id)'] + 1;

অথবা

$result = mysql_query("SHOW TABLE STATUS WHERE `Name` = 'your_table_name'");
$data = mysql_fetch_assoc($result);
$next_increment = $data['Auto_increment'];

5
প্রথম পদ্ধতির সাথে মনে রাখবেন যদি সর্বোচ্চ আইডি সহ রেকর্ডটি বাদ পড়ে তবে আপনি বাদ পড়া আইডিটি দিয়ে একটি নতুন রেকর্ড তৈরি করবেন।
টম জেনকিনসন

এবং যদি পূর্ববর্তী কীটি অন্য টেবিলে ব্যবহৃত হয় এবং এখনও সেখানে রাখা হয় তবে আপনি খুব আজব যাদু দিয়ে শেষ করতে পারেন
টেবে

আপনি সর্বশেষ recordোকানো রেকর্ডটি বাদ দিলে প্রথম একটির ভুল আইডি
ফেরান

6

সমাধান:

CREATE TRIGGER `IdTrigger` BEFORE INSERT ON `payments`
  FOR EACH ROW
BEGIN

SELECT  AUTO_INCREMENT Into @xId
    FROM information_schema.tables
    WHERE 
    Table_SCHEMA ="DataBaseName" AND
    table_name = "payments";

SET NEW.`payment_code` = CONCAT("sahf4d2fdd45",@xId);

END;

"ডাটাবেসনেম" আমাদের ডেটা বেসের নাম


5

সাধারণ জিজ্ঞাসা করতে হবে SHOW TABLE STATUS LIKE 'table_name'



3

Serোকানোর সময় আপনি আইডি ব্যবহার করতে পারবেন না, আপনার এটিরও দরকার নেই। আপনি যখন এই রেকর্ডটি সন্নিবেশ করছিলেন তখন মাইএসকিউএল এমনকি আইডিও জানেন না। আপনি শুধু বাঁচাতে পারে "sahf4d2fdd45"মধ্যে payment_codeটেবিল এবং ব্যবহার idএবং payment_codeপরে।

আইডি রাখতে আপনার যদি আপনার পেমেন্ট_ কোডটি সত্যই প্রয়োজন হয় তবে আইডি যুক্ত করতে সন্নিবেশের পরে সারিটি আপডেট করুন।


+1 এটিকে আরও স্পষ্ট করে তুলতে: আপনি যদি কোনও কলাম থেকে 'সর্বশেষ' মানটি ধরে নিয়ে থাকেন তবে ঠিক যে মুহূর্তে আপনি এটি গ্রহণ করেছেন এটি কেবল সর্বশেষতম মান হিসাবে গ্যারান্টিযুক্ত। আপনি পরবর্তী সন্নিবেশে যখন সেই মানটি ব্যবহার করতে আসেন তখন এটি সর্বশেষতম মান হতে পারে না। একটি স্বয়ংবৃদ্ধি কলামের ক্ষেত্রে, আপনি সর্বদা আইডিটি পুনরুদ্ধার করার সময় এবং আপনি এটি অন্য কোথাও sertোকানোর সময়ের মধ্যে অন্য মান যুক্ত হওয়ার সম্ভাবনা থাকে। আপনি যদি সবে inোকানো একটি সারি উল্লেখ করে থাকেন তবে LAST_INSERT_ID () ব্যবহার করা ভাল fine আপনি যদি একটি অনন্য মান নিশ্চিত করার চেষ্টা করছেন তবে তা নয়।
মাইকে

@ কুলারিস, মাইএসকিউএল পরবর্তী অটো_স্রাবণ আইডিটি জানে না, এটি information_schema.tablesসারণীতে তালিকাভুক্ত ।
জোহান

1
@ ফ্যাসাফরফ্ট: যদি ধারণাটির কোনও অর্থপ্রদানের কোড রয়েছে যা একটি অনন্য স্ট্রিং প্লাসের সাথে সেই শোধকের কোডের সারণীর আইডি সমন্বিত থাকে, আপনি যখন সারিটি পুনরুদ্ধার করেন তখন দু'টিকে একত্রিত করুন - হয় কোনও সাথে SELECT ... CONCAT(payment_code, id)বা আপনার অ্যাপ্লিকেশন কোডে। এমনকি আপনি মোড়ানো পারে SELECTএকটি VIEW, যাতে আপনি সবসময় সঠিক মান, আপনার অ্যাপ্লিকেশন থেকে নির্বাচন করুন CONCAT সম্পর্কে উদ্বেজক ছাড়া।
মাইকে

3

আপনার পরবর্তী ইনক্রিমেন্টাল আইডি কী দরকার?

মাইএসকিউএল প্রতি টেবিলের জন্য কেবল একটি অটো-ইনক্রিমেন্ট ক্ষেত্রের অনুমতি দেয় এবং স্বতন্ত্রতার গ্যারান্টি দেওয়ার জন্য এটি প্রাথমিক কীও হতে হবে।

নোট করুন যে আপনি যখন পরবর্তী সন্নিবেশ আইডিটি পাবেন তখন এটি যখন আপনি এটি ব্যবহার করবেন না তখন আপনার কাছে থাকা মানটি কেবলমাত্র সেই লেনদেনের আওতায় থাকে। সুতরাং আপনার ডাটাবেসের লোডের উপর নির্ভর করে, পরবর্তী অনুরোধটি আসার আগেই সেই মানটি ইতিমধ্যে ব্যবহার করা যেতে পারে।

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি নিজের নকশাটি পর্যালোচনা করুন তা নিশ্চিত করার জন্য আপনাকে পরবর্তী কোন অটো-ইনক্রিমেন্ট মান নির্ধারণ করতে হবে তা নিশ্চিত হওয়ার দরকার নেই


আইডির জন্য যে ধরণের অ্যাপ্লিকেশন প্রয়োজন সেগুলি ধরে নেওয়া ভাল ধারণা নয়। এই মুহুর্তে আমি যার মতো কাজ করছি তার মতো অ্যাপ্লিকেশন রয়েছে যা পরবর্তী ইনক্রিমেন্টাল আইডি প্রয়োজন এবং পুনরুদ্ধার করা মানটি অন্য স্ক্রিপ্টে বরাদ্দের কোনও বিপদে নেই।
জে জি Estiot

3

আপনি যা করছেন তা পুনর্বিবেচনা করার পরামর্শ দিই। আমি কখনও একক ব্যবহারের ক্ষেত্রে অভিজ্ঞতা পাইনি যেখানে সেই বিশেষ জ্ঞানের প্রয়োজন। পরের আইডিটি একটি বিশেষ প্রয়োগের বিশদ এবং এটি এসিডি নিরাপদ হওয়ার বিষয়ে আমি বিশ্বাস করি না।

একটি সাধারণ লেনদেন করুন যা আপনার প্রবেশকৃত সারিটি শেষ আইডির সাথে আপডেট করে:

BEGIN;

INSERT INTO payments (date, item, method)
     VALUES (NOW(), '1 Month', 'paypal');

UPDATE payments SET payment_code = CONCAT("sahf4d2fdd45", LAST_INSERT_ID())
     WHERE id = LAST_INSERT_ID();

COMMIT;

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

1
এটি সম্ভবত আপনার পক্ষে কাজ করতে পারে তবে আমি তার উপর নির্ভর করব না কারণ আমি মনে করি না যে এতে আপনার কোনও গ্যারান্টি আছে: dev.mysql.com/doc/refman/8.0/en/example-auto-increment.html " যখন অটোপ্রেমিক কলামটি একাধিক কলামের সূচকের অংশ), আপনি যদি কোনও গ্রুপের বৃহত্তম আউটপুট ক্রিমেন্ট মান সহ সারিটি মুছুন তবে স্বতঃবর্ধিত মানগুলি পুনরায় ব্যবহৃত হবে। "
মার্কাস মালকুশ

ধন্যবাদ, দরকারী তথ্য, আপনার ভাগ করা লিঙ্ক অনুসারে অটো_সংগ্রহটি ম্যানুয়ালি একটি সংখ্যা beোকানো পুনরায় সেট করা যেতে পারে, তাই হ্যাঁ নির্ভরযোগ্য নয়।
উসমান

2

এটি করার আগে আপনাকে মাইএসকিউএলে কানেক্ট করতে হবে এবং একটি ডাটাবেস নির্বাচন করতে হবে

$table_name = "myTable"; 
$query = mysql_query("SHOW TABLE STATUS WHERE name='$table_name'"); 
$row = mysql_fetch_array($query); 
$next_inc_value = $row["AUTO_INCREMENT"];  

2

"mysql_insert_id ()" ব্যবহার করুন। mysql_insert_id () সর্বশেষ সঞ্চালিত ক্যোয়ারিতে কাজ করে, মান উত্পন্ন করে এমন ক্যোয়ারির অবিলম্বে mysql_insert_id () কল করতে ভুলবেন না।

নীচে ব্যবহারের উদাহরণ:

<?php
    $link = mysql_connect('localhost', 'username', 'password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable  VALUES('','value')");
printf("Last inserted record has id %d\n", mysql_insert_id());
    ?>

আমি আশা করি উপরের উদাহরণটি দরকারী।


ধন্যবাদ আমি এটি সচেতন।
জনাব জাভেদ মুলতানি


1
SELECT id FROM `table` ORDER BY id DESC LIMIT 1

যদিও আমি এর উত্পাদনশীলতায় সন্দেহ করি তবে এটি 100% নির্ভরযোগ্য


আমিও একমত যে এটিই সহজতম পদ্ধতি। আপনি কেন নিচে ভোট পেয়েছিলেন তা নিশ্চিত নয়, তবে আমি একটি উত্সাহ দিয়ে অফসেট করব।
recurse

আমি লেনদেনের প্রয়োজনীয়তার কথা উল্লেখ করিনি, আপনি যদি লেনদেনের অভ্যন্তরে এটি না জড়িয়ে রাখেন তবে এই কোডটি লাউসিয়্যাপ এ্যাস্প এটি বাস্তব লোডিংয়ের সাথে মিলিত হয়।
টেবে

1
সর্বশেষ সারি মুছে ফেলা হলে কী হবে? বা একাধিক সর্বশেষ সারি মুছে ফেলা হয়েছে?
লিয়াম ডব্লু

অ ইস্যু, মুক্ত কী, যদি না আপনি স্পষ্টভাবে এটা উল্লেখ ব্যবহার করতে পারেন না
Tebe থেকে

1

ravi404 এর উত্তর ব্যবহার করে:

CREATE FUNCTION `getAutoincrementalNextVal`(`TableName` VARCHAR(50))
    RETURNS BIGINT
    LANGUAGE SQL
    NOT DETERMINISTIC
    CONTAINS SQL
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN

    DECLARE Value BIGINT;

    SELECT
        AUTO_INCREMENT INTO Value
    FROM
        information_schema.tables
    WHERE
        table_name = TableName AND
        table_schema = DATABASE();

    RETURN Value;

END

আপনার সন্নিবেশ ক্যোয়ারী ব্যবহার করে একটি SHA1 হ্যাশ তৈরি করতে। প্রাক্তন .:

INSERT INTO
    document (Code, Title, Body)
VALUES (                
    sha1( getAutoincrementalNextval ('document') ),
    'Title',
    'Body'
);

এটি কি সবসময় কাজ করে? একই সাথে দুটি সন্নিবেশ ঘটতে থাকলে কি কোনও জাতি শর্ত রয়েছে?
Jmons

0

@ রবি 404 এর উন্নতি, যদি আপনার স্বতঃসংশোধনের অফসেটটি 1 না হয়:

SELECT (`auto_increment`-1) + IFNULL(@@auto_increment_offset,1) 
FROM INFORMATION_SCHEMA.TABLES
WHERE table_name = your_table_name
AND table_schema = DATABASE( );

( auto_increment-1): ডিবি ইঞ্জিনটি অ্যালওয়াসকে 1 এর অফসেট হিসাবে বিবেচনা করবে বলে মনে হয় তাই আপনাকে এই অনুমানটি খনন করতে হবে, তারপরে autoচ্ছিক মান = অটো_সংশোধন_অফসেট, বা ডিফল্ট 1 এ যুক্ত করুন: আইএফএনএলএল (@ অটো_সংশ্লিষ্ট_অফसेट, 1)


0

আমার জন্য এটি কার্যকর হয় এবং সহজ দেখাচ্ছে:

 $auto_inc_db = mysql_query("SELECT * FROM my_table_name  ORDER BY  id  ASC ");
 while($auto_inc_result = mysql_fetch_array($auto_inc_db))
 {
 $last_id = $auto_inc_result['id'];
 }
 $next_id = ($last_id+1);


 echo $next_id;//this is the new id, if auto increment is on

$last_idযখন আপনি ঠিক করতে পারেন পুনরাবৃত্তিমূলকভাবে নির্ধারণ করা বেশ অপ্রয়োজনীয় DESC। আপনার whileব্লকটি প্রচুর অকেজো কাজের কাজ করেছে।
টিউ

হ্যাঁ, ঠিক আছে ... আমি ঠিক বুঝতে পেরেছি যে এটি নিখুঁত নয় ... :( শেষ পর্যন্ত কেউ যদি আইডিটি পুনরায় মুছে ফেলা যায় তবে ... :(
টনসাইকিং

0

যদি কোনও সঠিক AUTO)CREMENT না ফেরায় তবে এটি ব্যবহার করে দেখুন:

ANALYZE TABLE `my_table`;
SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE (TABLE_NAME = 'my_table');

টেবিলের জন্য এই পরিষ্কার ক্যাশে, বিডিতে

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