মাইএসকিউএল: কেন অটো_সংগ্রহ কেবল প্রাথমিক কীগুলিতে সীমাবদ্ধ?


10

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

কেন আমি একই টেবিলে একাধিক অটো_সংশোধন কলাম রাখতে পারি না?

ধন্যবাদ।


আমি কেবল লক্ষ্য করেছি যে লেনদেনগুলিতে আমি @ পপ ব্যবহার করতে ভুলে গেছি আমি উদাহরণটি আবার চেষ্টা করেছি এবং আমার উত্তরের নীচে পোস্ট করেছি !!!
রোল্যান্ডোমাইএসকিউএলডিবিএ

আমি এই প্রশ্নটি পছন্দ করি কারণ এটি আমার মাইএসকিউএল সহ বাক্সটি বাইরে নিয়ে যাচ্ছিল যা শুক্রবার রাতে খুব বেশি করি না। +1 !!!
রোল্যান্ডোমাইএসকিউএলডিবিএ

উত্তর:


9

আপনি কেন একটি প্রাথমিক কী নয় এমন একটি অটো_সংশোধক কলাম রাখতে চান?

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

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


এটি তাত্ত্বিক প্রশ্নে আরও বেশি ছিল - একাধিক অটো_সংশোধন কলাম থাকার জন্য আমার কোনও ব্যবহারিক ব্যবহার নেই, আমি কেন এটি সম্ভব হয়নি তা সম্পর্কে লোকদের ব্যাখ্যা শুনতে চেয়েছিলাম। উত্তর দেওয়ার জন্য সময় দেওয়ার জন্য ধন্যবাদ! :)
ক্রিস্টোফার আর্মস্ট্রং

2
"আপনি কেন একটি প্রাথমিক কী নয় এমন একটি অটো_সংগ্রহ কলাম রাখতে চান?" - আমি ব্যক্তিগতভাবে কয়েকটি কারণ সম্পর্কে ভাবতে পারি। তবে ওটি। :-)
ডেনিস ডি বার্নার্ডি

আমি এখন এই জাতীয় কিছু করছি - এবং এটি অর্থহীন ডেটা নয়। কোনও টেবিলে everোকানো সমস্ত রেকর্ডের একটি গণনা আমার জানা দরকার, তবে ইতিমধ্যে আরও দরকারী প্রাথমিক কী রয়েছে। এটি সমাধান করে যেহেতু প্রতিটি নতুন রেকর্ডের এটির একটি মূল্য রয়েছে। একটি (দুর্বল) উপমাটি হবে "আপনি আমাদের 10,000 তম গ্রাহক" প্রয়োজনীয়তা। গ্রাহকরা সময়ের সাথে সাথে মুছে ফেলা হয়, সুতরাং COUNT (*) বৈধ নয়।
সিলিন্ড্রিক

আপনি কেন একটি প্রাথমিক কী নয় এমন একটি অটো_সংশোধক কলাম রাখতে চান?
phil_w

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

8

প্রকৃতপক্ষে স্বতঃসংশ্লিষ্ট বৈশিষ্ট্যটি মূল কী (কোনও আর) এর মধ্যে সীমাবদ্ধ নয়। এটি পুরানো সংস্করণগুলিতে তাই ব্যবহৃত হত - অবশ্যই ৩.২৩ এবং সম্ভবত ৪.০। এখনও মাইএসকিউএল ম্যানুয়াল সমস্ত সংস্করণের জন্য ৪.১ এর মতো পড়ে

প্রতি টেবিলের জন্য কেবলমাত্র একটি AUTO_INCREMENT কলাম থাকতে পারে, এটি অবশ্যই সূচিকৃত হতে হবে এবং এর কোনও মান মূল্য থাকতে পারে না।

সুতরাং আপনার কাছে কোনও টেবিলের মধ্যে একটি স্বয়ংক্রিয় ক্রিমিকাল কলাম থাকতে পারে যা প্রাথমিক কী নয়। এটি যদি বোধগম্য হয় তবে এটি একটি আলাদা বিষয়।

আমার এটিও উল্লেখ করা উচিত যে একটি অটোপ্রেমেন্ট কলামটি সর্বদা একটি পূর্ণসংখ্যা টাইপ হওয়া উচিত (প্রযুক্তিগতভাবে একটি ভাসমান পয়েন্ট ধরণেরও অনুমতি দেওয়া হয়) এবং এটি UNSIGNED হওয়া উচিত। একটি স্বাক্ষরিত ধরণটি কেবল চাবি স্থানের অর্ধেক অপচয় করে না, দুর্ঘটনার কারণে যদি নেতিবাচক মান প্রবেশ করা হয় তবে এটি বিশাল সমস্যার সৃষ্টি করতে পারে।

পরিশেষে মাইএসকিউএল ৪.১ এবং পরবর্তীতে এক প্রকারের ওরফে সিরিয়াল সংজ্ঞায়িত করে বিগিন্ট ইউএনজিগড না নল আউটপুট ক্রিমেন্ট ইউনিকের জন্য।


1
স্বয়ংক্রিয় সংযোজন কেবল পিকে-তে সীমাবদ্ধ নয় এই তথ্যের জন্য +1। নিশ্চিত না কেন আপনি কোনও সারোগেট কীটির জন্য নেতিবাচক সংখ্যা ব্যবহার করলেও "বিশাল সমস্যা" বাড়ে।
এনভোভেল

4

এটি একটি আকর্ষণীয় প্রশ্ন কারণ বিভিন্ন ডেটাবেজে অটো_সামগ্রী সরবরাহের জন্য অনন্য পন্থা রয়েছে।

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

  • সর্বাধিক টিআইএনআইএনটি 127
  • সর্বোচ্চ UNSIGNED টিিন্টিন্ট 255
  • সর্বোচ্চ INT 2147483647 64
  • সর্বোচ্চ UNSIGNED INT হল 4294967295 29

পোস্টগ্রি

অভ্যন্তরীণ ডেটাটাইপ সিরিয়ালটি 1 থেকে 2,147,483,647 এ অটো বর্ধনের জন্য ব্যবহৃত হয়। বড়সারিগুলি বিগসিরিয়াল ব্যবহারের অনুমতি দেওয়া হয়।

ওরাকল : SEQUENCE নামক স্কিমা অবজেক্টটি কেবলমাত্র পরবর্তী পরবর্তী ফাংশনটি ডেকে নতুন সংখ্যা তৈরি করতে পারে। PostgreSQL এও এমন একটি প্রক্রিয়া রয়েছে।

এখানে একটি দুর্দান্ত ইউআরএল রয়েছে যা প্রদান করে যে অন্যান্য ডিবিগুলি কীভাবে তাদের নির্দিষ্ট করে: http://www.w3schools.com/sql/sql_autoincrement.asp

এখন আপনার প্রশ্নের বিষয়ে, যদি আপনি সত্যিই এক টেবিলে একাধিক অটো_সংশোধন কলাম রাখতে চান, আপনাকে এটি অনুকরণ করতে হবে।

আপনাকে অবশ্যই এটি অনুকরণ করার দুটি কারণ:

  1. মাইএসকিউএল পোস্টগ্রিএসকিউএল, ওরাকল, এসকিউএল সার্ভার এবং এমএস অ্যাক্সেসের মতো টেবিলের জন্য কেবল একটি বর্ধিত কলাম সমন্বিত করে।
  2. মাইএসকিউএলে ওরাকল এবং পোস্টগ্র্রেএসকিউএলের মতো একটি সিকোয়েনসি স্কিমা অবজেক্ট নেই।

আপনি কিভাবে এটি অনুকরণ করবেন ???

একাধিক সারণী ব্যবহার করে যার মধ্যে কেবল একটি স্বতঃক্রিমেন্ট কলাম রয়েছে এবং সেগুলি লক্ষ্য সারণিতে পছন্দসই কলামগুলিতে ম্যাপিং করতে পারে। এখানে একটি উদাহরণ:

এই উদাহরণটি অনুলিপি করুন এবং আটকান:

use test
DROP TABLE IF EXISTS teacher_popquizzes;
CREATE TABLE teacher_popquizzes
(
    teacher varchar(20) not null,
    class varchar(20) not null,
    pop_mon INT NOT NULL DEFAULT 0,
    pop_tue INT NOT NULL DEFAULT 0,
    pop_wed INT NOT NULL DEFAULT 0,
    pop_thu INT NOT NULL DEFAULT 0,
    pop_fri INT NOT NULL DEFAULT 0,
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);
INSERT INTO teacher_popquizzes (teacher,class) VALUES
('mr jackson','literature'),
('mrs andrews','history'),
('miss carroll','spelling');
DROP TABLE IF EXISTS mon_seq;
DROP TABLE IF EXISTS tue_seq;
DROP TABLE IF EXISTS wed_seq;
DROP TABLE IF EXISTS thu_seq;
DROP TABLE IF EXISTS fri_seq;
CREATE TABLE mon_seq
(
    val INT NOT NULL DEFAULT 0,
    nextval INT NOT NULL DEFAULT 1,
    PRIMARY KEY (val)
);
CREATE TABLE tue_seq LIKE mon_seq;
CREATE TABLE wed_seq LIKE mon_seq;
CREATE TABLE thu_seq LIKE mon_seq;
CREATE TABLE fri_seq LIKE mon_seq;
BEGIN;
INSERT INTO tue_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;
SELECT nextval INTO @pop FROM mon_seq;
UPDATE teacher_popquizzes SET pop_tue = pop_tue + 1 WHERE id = 2;
COMMIT;
BEGIN;
INSERT INTO tue_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;
SELECT nextval INTO @pop FROM tue_seq;
UPDATE teacher_popquizzes SET pop_tue = pop_tue + 1 WHERE id = 1;
COMMIT;
BEGIN;
INSERT INTO wed_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;
SELECT nextval INTO @pop FROM wed_seq;
UPDATE teacher_popquizzes SET pop_wed = pop_wed + 1 WHERE id = 2;
COMMIT;
SELECT * FROM teacher_popquizzes;

এটি শিক্ষকদের জন্য পপ কুইজের একটি সারণী তৈরি করবে। আমি পাঁচটি সিকোয়েন্স এমুলেটর তৈরি করেছি, স্কুল সপ্তাহের প্রতিটি দিনের জন্য একটি। প্রতিটি সিকোয়েন্স এমুলেটরটি ভাল কলামে মান 0 সন্নিবেশ করে কাজ করে। যদি সিকোয়েন্স এমুলেটরটি খালি থাকে তবে এটি ভাল 0, পরের 1 সাথে শুরু হয় not না হলে, পরবর্তী কলামটি বর্ধিত হয়। তারপরে আপনি সিকোয়েন্স এমুলেটর থেকে পরবর্তী কলামটি আনতে পারেন।

উদাহরণ থেকে নমুনা ফলাফল এখানে:

mysql> CREATE TABLE teacher_popquizzes
    -> (
    ->     teacher varchar(20) not null,
    ->     class varchar(20) not null,
    ->     pop_mon INT NOT NULL DEFAULT 0,
    ->     pop_tue INT NOT NULL DEFAULT 0,
    ->     pop_wed INT NOT NULL DEFAULT 0,
    ->     pop_thu INT NOT NULL DEFAULT 0,
    ->     pop_fri INT NOT NULL DEFAULT 0,
    ->     id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
    -> );
Query OK, 0 rows affected (0.11 sec)

mysql> INSERT INTO teacher_popquizzes (teacher,class) VALUES
    -> ('mr jackson','literature'),
    -> ('mrs andrews','history'),
    -> ('miss carroll','spelling');
Query OK, 3 rows affected (0.03 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> DROP TABLE IF EXISTS mon_seq;
Query OK, 0 rows affected (0.06 sec)

mysql> DROP TABLE IF EXISTS tue_seq;
Query OK, 0 rows affected (0.03 sec)

mysql> DROP TABLE IF EXISTS wed_seq;
Query OK, 0 rows affected (0.03 sec)

mysql> DROP TABLE IF EXISTS thu_seq;
Query OK, 0 rows affected (0.05 sec)

mysql> DROP TABLE IF EXISTS fri_seq;
Query OK, 0 rows affected (0.07 sec)

mysql> CREATE TABLE mon_seq
    -> (
    ->     val INT NOT NULL DEFAULT 0,
    ->     nextval INT NOT NULL DEFAULT 1,
    ->     PRIMARY KEY (val)
    -> );
Query OK, 0 rows affected (0.12 sec)

mysql> CREATE TABLE tue_seq LIKE mon_seq;
Query OK, 0 rows affected (0.09 sec)

mysql> CREATE TABLE wed_seq LIKE mon_seq;
Query OK, 0 rows affected (0.08 sec)

mysql> CREATE TABLE thu_seq LIKE mon_seq;
Query OK, 0 rows affected (0.07 sec)

mysql> CREATE TABLE fri_seq LIKE mon_seq;
Query OK, 0 rows affected (0.14 sec)

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO tue_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;
Query OK, 1 row affected (0.00 sec)

mysql> SELECT nextval INTO @pop FROM mon_seq;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> UPDATE teacher_popquizzes SET pop_tue = pop_tue + 1 WHERE id = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> COMMIT;
Query OK, 0 rows affected (0.03 sec)

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO tue_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;
Query OK, 2 rows affected (0.00 sec)

mysql> SELECT nextval INTO @pop FROM tue_seq;
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE teacher_popquizzes SET pop_tue = pop_tue + 1 WHERE id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> COMMIT;
Query OK, 0 rows affected (0.03 sec)

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO wed_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;
Query OK, 1 row affected (0.00 sec)

mysql> SELECT nextval INTO @pop FROM wed_seq;
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE teacher_popquizzes SET pop_wed = pop_wed + 1 WHERE id = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> COMMIT;
Query OK, 0 rows affected (0.03 sec)

mysql> SELECT * FROM teacher_popquizzes;
+--------------+------------+---------+---------+---------+---------+---------+----+
| teacher      | class      | pop_mon | pop_tue | pop_wed | pop_thu | pop_fri | id |
+--------------+------------+---------+---------+---------+---------+---------+----+
| mr jackson   | literature |       0 |       1 |       0 |       0 |       0 |  1 |
| mrs andrews  | history    |       0 |       1 |       1 |       0 |       0 |  2 |
| miss carroll | spelling   |       0 |       0 |       0 |       0 |       0 |  3 |
+--------------+------------+---------+---------+---------+---------+---------+----+
3 rows in set (0.00 sec)

mysql>

মাইএসকিউএলে আপনার যদি সত্যিই একাধিক অটো ইনক্রিমেন্ট মান প্রয়োজন হয় তবে এটি অনুকরণের এটি নিকটতম উপায়।

একবার চেষ্টা করে দেখো !!!

আপডেট ২০১১-০6-২৩ ২১:০৫

আমি কেবলমাত্র আমার উদাহরণে লক্ষ্য করেছি যে আমি @ পপ মানটি ব্যবহার করি না।

এবার আমি 'pop_tue = pop_tue + 1' কে 'pop_tue = @pop' দিয়ে প্রতিস্থাপন করেছি এবং উদাহরণটি আবার চেষ্টা করেছি:

mysql> use test
Database changed
mysql> DROP TABLE IF EXISTS teacher_popquizzes;
Query OK, 0 rows affected (0.05 sec)

mysql> CREATE TABLE teacher_popquizzes
    -> (
    ->     teacher varchar(20) not null,
    ->     class varchar(20) not null,
    ->     pop_mon INT NOT NULL DEFAULT 0,
    ->     pop_tue INT NOT NULL DEFAULT 0,
    ->     pop_wed INT NOT NULL DEFAULT 0,
    ->     pop_thu INT NOT NULL DEFAULT 0,
    ->     pop_fri INT NOT NULL DEFAULT 0,
    ->     id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
    -> );
Query OK, 0 rows affected (0.06 sec)

mysql> INSERT INTO teacher_popquizzes (teacher,class) VALUES
    -> ('mr jackson','literature'),
    -> ('mrs andrews','history'),
    -> ('miss carroll','spelling');
Query OK, 3 rows affected (0.03 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> DROP TABLE IF EXISTS mon_seq;
Query OK, 0 rows affected (0.03 sec)

mysql> DROP TABLE IF EXISTS tue_seq;
Query OK, 0 rows affected (0.03 sec)

mysql> DROP TABLE IF EXISTS wed_seq;
Query OK, 0 rows affected (0.03 sec)

mysql> DROP TABLE IF EXISTS thu_seq;
Query OK, 0 rows affected (0.01 sec)

mysql> DROP TABLE IF EXISTS fri_seq;
Query OK, 0 rows affected (0.03 sec)

mysql> CREATE TABLE mon_seq
    -> (
    ->     val INT NOT NULL DEFAULT 0,
    ->     nextval INT NOT NULL DEFAULT 1,
    ->     PRIMARY KEY (val)
    -> );
Query OK, 0 rows affected (0.08 sec)

mysql> CREATE TABLE tue_seq LIKE mon_seq;
Query OK, 0 rows affected (0.09 sec)

mysql> CREATE TABLE wed_seq LIKE mon_seq;
Query OK, 0 rows affected (0.13 sec)

mysql> CREATE TABLE thu_seq LIKE mon_seq;
Query OK, 0 rows affected (0.11 sec)

mysql> CREATE TABLE fri_seq LIKE mon_seq;
Query OK, 0 rows affected (0.08 sec)

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO tue_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;

Query OK, 1 row affected (0.01 sec)

mysql> SELECT nextval INTO @pop FROM tue_seq;
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE teacher_popquizzes SET pop_tue = @pop WHERE id = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> COMMIT;
Query OK, 0 rows affected (0.03 sec)

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO tue_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;

Query OK, 2 rows affected (0.00 sec)

mysql> SELECT nextval INTO @pop FROM tue_seq;
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE teacher_popquizzes SET pop_tue = @pop WHERE id = 1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> COMMIT;
Query OK, 0 rows affected (0.03 sec)

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO wed_seq (val) VALUES (0) ON DUPLICATE KEY UPDATE nextval = nextval + 1;

Query OK, 1 row affected (0.01 sec)

mysql> SELECT nextval INTO @pop FROM wed_seq;
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE teacher_popquizzes SET pop_wed = @pop WHERE id = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> COMMIT;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT * FROM teacher_popquizzes;
+--------------+------------+---------+---------+---------+---------+---------+----+
| teacher      | class      | pop_mon | pop_tue | pop_wed | pop_thu | pop_fri | id |
+--------------+------------+---------+---------+---------+---------+---------+----+
| mr jackson   | literature |       0 |       2 |       0 |       0 |       0 |  1 |
| mrs andrews  | history    |       0 |       1 |       1 |       0 |       0 |  2 |
| miss carroll | spelling   |       0 |       0 |       0 |       0 |       0 |  3 |
+--------------+------------+---------+---------+---------+---------+---------+----+
3 rows in set (0.00 sec)

mysql>

আপনার সারাংশ পুরোপুরি সঠিক নয়: পোস্টগ্রেএসকিউএল যেমন ওরাकल যেমন করে (যেমন উভয় ক্ষেত্রেই কলামগুলি একটি ক্রম থেকে একটি মান দিয়ে পূর্ণ হয়) যেমন অটো ইনক্রিমেন্ট (সিরিয়াল) কলামগুলি সমর্থন করে। পোস্টগ্রাএসকিউএল bigserialডেটা
টাইপও দেয়

@ এ_হর্স_বিহীন_নাম_নাম: তদারকির জন্য দুঃখিত আমি এখনও পোস্টগ্রিস্কল সহ একজন ভ্রমণকর্মী। আমি আমার উত্তরটি পরে আপডেট করব। আমি আইফোন থেকে রাস্তা উত্তর। আপনার দিনটি শুভ হোক!
রোল্যান্ডোমাইএসকিউএলডিবিএ

0

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

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