MySQL ප්‍රාථමික යතුර (PRIMARY KEY) විස්තර: එය සකස් කිරීම, දෝෂ නිරාකරණය, සහ හොඳම නිර්මාණය තෝරා ගැනීම

目次

1. හැඳින්වීම

දත්ත ගබඩා සැලසුම් කිරීමේදී, “ප්‍රාථමික යතුර (PRIMARY KEY)” යනු අත්‍යවශ්‍ය සංකල්පයකි.
ප්‍රාථමික යතුර එක් එක් ලේඛනයේ ඒකකත්වය සහතික කිරීමේදී හා කාර්යක්ෂම දත්ත කළමනාකරණය සහ අඛණ්ඩතාවය සඳහා මූලික පදනමක් ලෙස ක්‍රියා කරයි.

මෙම ලිපියේ, MySQL හි ප්‍රාථමික යතුරු මූලික කරුණු, ඒවා සකස් කිරීම, දෝෂ නිරාකරණය, සහ හොඳ සැලසුම් තේරීම පිළිබඳ සියල්ල පැහැදිලි කරමු. මෙම මාර්ගෝපදේශය ආරම්භකයන් සිට මධ්‍යම පරිශීලකයන් දක්වා විවිධ පරිශීලකයන්ට ප්‍රයෝජනවත් වීමට උත්සාහ කරයි.

ඔබ මෙම මාර්ගෝපදේශය කියවීම අවසන් කරන විට, ඔබට හැකි වනු ඇත:

  • ප්‍රාථමික යතුරේ මූලික සංකල්පය අවබෝධ කර ගැනීම.
  • ප්‍රාථමික යතුරක් සකස් කර ඒ සම්බන්ධ දෝෂ නිරාකරණය කිරීම.
  • දත්ත ගබඩා සැලසුම් සඳහා සුදුසු ප්‍රාථමික යතුර තේරීම.

දැන්, ප්‍රාථමික යතුරු මූලික කරුණු සමඟ ආරම්භ කරමු.

2. ප්‍රාථමික යතුර (PRIMARY KEY) යනු කුමක්ද?

දත්ත ගබඩාවක, “ප්‍රාථමික යතුර (PRIMARY KEY)” යනු වගුවක අද්විතීය බව සහතික කිරීම සඳහා භාවිතා කරන අතිශය වැදගත් යතුරු වර්ගයක් වේ. ප්‍රාථමික යතුර දත්ත සඳහා හැඳුනුම්කාරකයක් ලෙස ක්‍රියා කර, එක් එක් පේළිය අද්විතීය ලෙස හඳුනාගනී.

ප්‍රාථමික යතුරේ ලක්ෂණ

  1. අද්විතීය බව සහතික කරයි ප්‍රාථමික යතුර ලෙස සකස් කරන තීරුව(තීරු) වල අගයන් වගුව තුළ පිටපත් විය නොහැක.
  2. NULL අගයන් අනුමත නොවේ ප්‍රාථමික යතුරට සෑම විටම අගයක් තිබිය යුතු අතර NULL අගයන් අනුමත නොවේ.
  3. වගුවකට එකක් පමණ එක් එක් වගුවකට ප්‍රාථමික යතුර එකක් පමණක් තිබිය හැකි අතර බහු ප්‍රාථමික යතුරු නිර්වචනය කළ නොහැක. එNevertheless, ඔබට බහු තීරු එකතු කර “සංයුක්ත ප්‍රාථමික යතුර”ක් සෑදිය හැක.

ඔබට ප්‍රාථමික යතුරක් අවශ්‍ය වන්නේ ඇයි

ප්‍රාථමික යතුරක් සකස් කිරීමෙන් ලැබෙන ප්‍රතිලාභ:

  • දත්ත අඛණ්ඩතාවය සහතික කරයි : පිටපත් ලේඛන ඇතුළත් වීම වැළැක්වීම.
  • කාර්යක්ෂම සෙවීම : දත්ත සෙවීම, යාවත්කාලීන කිරීම, මකා දැමීම සඳහා කාර්ය සාධනය වැඩිදියුණු කරයි.
  • වගු අතර සම්බන්ධතා කළමනාකරණය : විදේශ යතුරු භාවිතා කරන විට ප්‍රාථමික යතුර යොමු බින්දුව වේ.

උදාහරණයක් ලෙස, පරිශීලක තොරතුරු කළමනාකරණය කරන වගුවක “User ID” ප්‍රාථමික යතුර ලෙස සකස් කිරීමෙන් එක් එක් පරිශීලකයා අද්විතීයව හඳුනාගත හැක.

3. MySQL හි ප්‍රාථමික යතුරක් සකස් කිරීමේ ක්‍රමය

MySQL හි, ඔබට පහසුවෙන් ප්‍රාථමික යතුරක් (PRIMARY KEY) සකස් කළ හැක. පහත, නව වගුවක් සාදන විට ප්‍රාථමික යතුරක් සකස් කිරීම සහ පවතින වගුවකට ප්‍රාථමික යතුරක් එක් කිරීම පිළිබඳ නිරූපිත උදාහරණ සමඟ පැහැදිලි කරමු.

නව වගුවක් සාදන විට ප්‍රාථමික යතුර සකස් කිරීම

නව වගුවක් සාදන විට ප්‍රාථමික යතුරක් සකස් කිරීමට CREATE TABLE ප්‍රකාශනය භාවිතා කරන්න. ප්‍රාථමික යතුර සඳහා භාවිතා කරන තීරුවට NOT NULL සීමාව තිබිය යුතුය.

මූලික උදාහරණ

පහත උදාහරණයේ, users නමින් වගුවක් සාදමින් id තීරුව ප්‍රාථමික යතුර ලෙස සකස් කරමු.

CREATE TABLE users (
    id INT NOT NULL AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100),
    PRIMARY KEY (id)
);

විස්තරය:

  • id තීරුව AUTO_INCREMENT භාවිතා කර, ස්වයංක්‍රීයව අනුක්‍රමික අද්විතීය අගයන් ජනනය කරයි.
  • PRIMARY KEY (id) මඟින් id තීරුව ප්‍රාථමික යතුර බව සඳහන් කරයි.

බහු තීරු ප්‍රාථමික යතුර (සංයුක්ත ප්‍රාථමික යතුර) සකස් කිරීම

සංයුක්ත ප්‍රාථමික යතුරක් සකස් කිරීමෙන් බහු තීරු එකතුවක් භාවිතා කර අද්විතීය බව සහතික කළ හැක.

උදාහරණය: සංයුක්ත ප්‍රාථමික යතුර නිර්වචනය

CREATE TABLE orders (
    order_id INT NOT NULL,
    product_id INT NOT NULL,
    quantity INT,
    PRIMARY KEY (order_id, product_id)
);

විස්තරය:

  • order_id සහ product_id එකතුව ප්‍රාථමික යතුර ලෙස නිර්වචනය කර ඇත.
  • එකම order_id තිබුණත්, වෙනස් product_id අගයන් සමඟ ලේඛන ලියාපදිංචි කළ හැක.

පවතින වගුවකට ප්‍රාථමික යතුරක් එක් කිරීම

පවතින වගුවකට පසුව ප්‍රාථමික යතුරක් එක් කිරීමට ALTER TABLE ප්‍රකාශනය භාවිතා කරන්න.

උදාහරණය: එක තීරුවකට ප්‍රාථමික යතුර එක් කිරීම

පහත, පවතින users වගුවකට id ප්‍රාථමික යතුර ලෙස එක් කිරීමේ උදාහරණයක් වේ.

ALTER TABLE users ADD PRIMARY KEY (id);

උදාහරණය: සංයුක්ත ප්‍රාථමික යතුර එක් කිරීම

බහු තීරු එකතුවක් භාවිතා කර ප්‍රාථමික යතුර සකස් කිරීමේදීද ඒම ක්‍රමය ක්‍රියා කරයි.

ALTER TABLE orders ADD PRIMARY KEY (order_id, product_id);

ප්‍රාථමික යතුරක් ඉවත් කිරීමේ ක්‍රමය

ප්‍රාථමික යතුරක් ඉවත් කිරීමට, පහත පෙන්වා ඇති පරිදි ALTER TABLE ප්‍රකාශනය භාවිතා කරන්න.

ALTER TABLE users DROP PRIMARY KEY;

සටහන:

  • ප්‍රාථමික යතුර ඉවත් කිරීම එය මත පදනම් වූ දර්ශකයද ඉවත් කරයි, එබැවින් අවධානයෙන් ක්‍රියා කරන්න.

AUTO_INCREMENT භාවිතය

AUTO_INCREMENT යනු ප්‍රාථමික යතුරු සමඟ සාමාන්‍යයෙන් භාවිතා වන විශේෂාංගයකි. මෙම සැකසුම සමඟ, දත්ත ඇතුළත් කරන සෑම වරක්ම අගය ස්වයංක්‍රීයව වැඩි වේ.

උදාහරණය: AUTO_INCREMENT සමඟ ප්‍රාථමික යතුර

CREATE TABLE customers (
    customer_id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(100),
    PRIMARY KEY (customer_id)
);

4. සංයුක්ත ප්‍රාථමික යතුරු භාවිතය

සංයුක්ත ප්‍රාථමික යතුර යනු දත්ත අද්විතීයභාවය තහවුරු කිරීම සඳහා බහු තීරුවල එකතුවක් එක් ප්‍රාථමික යතුරක් ලෙස එකතු කිරීමේ ක්‍රමයකි. තනි තීරුවක් අද්විතීයභාවය සහතික නොකරන අවස්ථා හෝ විශේෂ ව්‍යාපාර නීති මත දත්ත හඳුනා ගැනීමට අවශ්‍ය වන විට මෙය විශේෂයෙන් ප්‍රයෝජනවත් වේ.

සංයුක්ත ප්‍රාථමික යතුරේ මූලික සංකල්පය

සංයුක්ත ප්‍රාථමික යතුර සමඟ, තීරු දෙකක් හෝ තවත් බහු තීරුවල අගයන්ගේ සංයෝජනය අද්විතීය බව ඔබට සහතික කළ හැක. උදාහරණයක් ලෙස, ඇණවුම් දත්ත කළමනාකරණය කරන වගුවක, ඇණවුම් අංකය (order_id) සහ නිෂ්පාදන අංකය (product_id) එකතු කිරීමෙන් එක් ඇණවුමක් තුළ එක් එක් නිෂ්පාදනය අද්විතීයව හඳුනාගත හැක.

සංයුක්ත ප්‍රාථමික යතුරක් සැකසීමේ ක්‍රමය

නව වගුවක් සාදන විට එය සැකසීම

orders වගුවේ සංයුක්ත ප්‍රාථමික යතුරක් සැකසීමේ උදාහරණයක් පහත දැක්වේ.

CREATE TABLE orders (
    order_id INT NOT NULL,
    product_id INT NOT NULL,
    quantity INT,
    PRIMARY KEY (order_id, product_id)
);

විස්තරය:

  • order_id සහ product_id එකට එක් ප්‍රාථමික යතුරක් ලෙස නියම කර ඇත.
  • order_id එකම වුවත්, වෙනස් product_id අගයන් ඇති ලේඛන ඇතුළත් කළ හැක.

පවතින වගුවකට සංයුක්ත ප්‍රාථමික යතුරක් එක් කිරීම

පවතින වගුවකට සංයුක්ත ප්‍රාථමික යතුරක් එක් කිරීමට, පහත පරිදි ALTER TABLE ප්‍රකාශනය භාවිතා කරන්න.

ALTER TABLE orders ADD PRIMARY KEY (order_id, product_id);

සංයුක්ත ප්‍රාථමික යතුරු වල වාසි

  1. අද්විතීයභාවය තහවුරු කරයි
  • බහු තීරුවල එකතුවෙන් අද්විතීයභාවය රැකගත හැක.
  1. ව්‍යාපාර නීති වලට ගැළපේ
  • උදාහරණයක් ලෙස, ඇණවුම් තොරතුරු කළමනාකරණය කරන විට, order_id එකක් පමණක් අද්විතීයභාවය තහවුරු නොකරනු ඇත, නමුත් order_id සහ product_id එකතු කිරීමෙන් දත්ත අඛණ්ඩතාවය රැකගත හැක.
  1. දත්ත කළමනාකරණය සරල කරයි
  • සංයුක්ත ප්‍රාථමික යතුරක් භාවිතා කිරීමෙන් අනුපිළිවෙළ දත්ත වැළැක්වීමට සහ ව්‍යුහය සරලව තබා ගැනීමට උපකාරී වේ.

සංයුක්ත ප්‍රාථමික යතුරු සමඟ අවධානය යොමු කළ යුතු කරුණු

  1. කාර්ය සාධන බලපෑම
  • සංයුක්ත ප්‍රාථමික යතුරු සෙවීම් සහ ඇතුළත් කිරීමේදී බහු තීරුවල සංසන්දනය කරන බැවින් ඒවා තනි තීරුවේ ප්‍රාථමික යතුරු වඩා වැඩි පිරිවැයක් ඇති විය හැක. විශාල දත්ත ගබඩා වල මෙය විශේෂයෙන් වැදගත් වේ.
  1. දර්ශක භාවිතයේ සීමා
  • සංයුක්ත ප්‍රාථමික යතුරක් සකස් කරන විට, ස්වයංක්‍රීයව ජනිත වන දර්ශකය බහු තීරුවල ආවරණය කරයි. තනි තීරුවක් සඳහා දර්ශකයක් අවශ්‍ය නම්, වෙනම දර්ශකයන් නිර්මාණය කළ යුතුය.
  1. වැඩි සංකීර්ණ සැලසුම
  • බහු තීරුවල එකතුවීමෙන් සැලසුම වැඩි සංකීර්ණ වේ. සුදුසු තීරුවල තේරීම අත්‍යවශ්‍ය වේ.

සංයුක්ත ප්‍රාථමික යතුරු භාවිත කළ යුතු අවස්ථා

  • අද්විතීයභාවය බහු කොන්දේසි මගින් කළමනාකරණය කළ යුතු අවස්ථා උදාහරණය: ඇණවුම් අංකය සහ නිෂ්පාදන අංකය, හෝ ව්‍යාපෘති අංකය සහ කාර්ය අංකය.
  • තනි තීරුවක් අද්විතීයභාවය තහවුරු නොකරන අවස්ථා උදාහරණය: එක් ගනුදෙනුකරු බහු නිෂ්පාදන මිලදී ගත හැකි නම්, ගනුදෙනුකරු අංකය සහ මිලදී ගැනීමේ දිනය එකතු කර අද්විතීයභාවය කළමනාකරණය කරන්න.

5. ප්‍රාථමික යතුරු සහ දර්ශක අතර වෙනස්කම්

ප්‍රාථමික යතුරු (PRIMARY KEY) සහ දර්ශක (INDEX) යන දෙකම MySQL හි වැදගත් සංකල්පයන් වන නමුත් ඒවායේ භූමිකා සහ අරමුණු වෙනස් වේ. මෙම කොටස ප්‍රාථමික යතුරු සහ දර්ශක අතර වෙනස්කම් පැහැදිලි කරමින්, ඒවා නිසි ලෙස භාවිතා කිරීමේ ක්‍රමය විස්තර කරයි.

ප්‍රාථමික යතුර (PRIMARY KEY) හි ලක්ෂණ

  1. අද්විතීයභාවය තහවුරු කරයි
  • ප්‍රාථමික යතුර වගුවේ සෑම පේළියක්ම අද්විතීයව හඳුනාගනී.
  • එය අනුපිළිවෙළ හෝ NULL අගයන්ට ඉඩ නොදේ.
  1. දත්ත අඛණ්ඩතාවය සහතික කරයි
  • ප්‍රාථමික යතුරක් සකස් කිරීම මගින් වගුවේ සමගාමීත්වය සහ දත්ත අඛණ්ඩතාවය රැක ගැනීමට උපකාරී වේ.
  1. ඉන්ඩෙක්ස් ස්වයංක්‍රීයව නිර්මාණය වේ
  • ඔබ ප්‍රාථමික යතුරක් සකස් කරන විට, ඉන්ඩෙක්ස් එක ස්වයංක්‍රීයව නිර්මාණය වේ, සෙවීම් සහ දත්ත මෙහෙයුම් සඳහා කාර්ය සාධනය වැඩිදියුණු කරයි.

ප්‍රාථමික යතුරේ උදාහරණය

පහත දැක්වෙන්නේ id තීරුව ප්‍රාථමික යතුර ලෙස සකස් කර ඇති උදාහරණයකි.

CREATE TABLE users (
    id INT NOT NULL AUTO_INCREMENT,
    username VARCHAR(50),
    PRIMARY KEY (id)
);

ඉන්ඩෙක්ස් (INDEX) ගුණාංග

  1. සෙවීම් වේගය වැඩිදියුණු කරයි
  • ඉන්ඩෙක්ස් මගින් දත්ත සෙවීම් සහ විමසුම් ක්‍රියාත්මක කිරීම වේගවත් වේ.
  1. අනන්‍යතාවය සහතික නොකරයි
  • සාමාන්‍ය ඉන්ඩෙක්ස් එක අනන්‍යතාවය සහතික නොකරයි (කෙසේ වෙතත්, UNIQUE ඉන්ඩෙක්ස් එක එය කරයි).
  1. ඕනෑම තීරුවකට සකස් කළ හැක
  • ඔබට ප්‍රාථමික යතුරට අයත් නොවන තීරුවල ඉන්ඩෙක්ස් සකස් කර විශේෂිත විමසුම් සඳහා වැඩි දක්ෂතාව ලබා ගත හැක.

ඉන්ඩෙක්ස් උදාහරණය

පහත දැක්වෙන්නේ username තීරුවට ඉන්ඩෙක්ස් එකක් එක් කිරීමේ උදාහරණයකි.

CREATE INDEX idx_username ON users (username);

ප්‍රාථමික යතුර vs. ඉන්ඩෙක්ස්

FeaturePrimary Key (PRIMARY KEY)Index (INDEX)
Guarantees uniqueness?YesUsually no (except UNIQUE indexes)
Allows NULL values?NoYes
Automatically created?An index is automatically created when a primary key is setMust be created manually
How many can be set?One per tableMultiple per table

ප්‍රාථමික යතුරු සහ ඉන්ඩෙක්ස් අතර සම්බන්ධතාවය

  • ප්‍රාථමික යතුරට ස්වයංක්‍රීයව ඉන්ඩෙක්ස් එකක් ඇත ඔබ ප්‍රාථමික යතුරක් සකස් කරන විට, අනන්‍ය ඉන්ඩෙක්ස් එක ස්වයංක්‍රීයව නිර්මාණය වේ. එයින් ප්‍රාථමික යතුරු තීරුව ඉක්මනින් සෙවිය හැකි වේ.
  • ඔබට ප්‍රාථමික යතුර නොවන තීරුවලද ඉන්ඩෙක්ස් එකක් එක් කළ හැක ප්‍රාථමික යතුරට අයත් නොවන තීරුවල ඉන්ඩෙක්ස් එකක් එක් කිරීම විශේෂිත විමසුම් සඳහා කාර්ය සාධනය වැඩිදියුණු කරයි.

උදාහරණය: ප්‍රාථමික යතුරක් සහ ඉන්ඩෙක්ස් එකක් දෙකම භාවිතා කිරීම

පහත උදාහරණයේ, විවිධ තීරුවල ප්‍රාථමික යතුරක් සහ ඉන්ඩෙක්ස් එකක් සකස් කර ඇත.

CREATE TABLE products (
    product_id INT NOT NULL AUTO_INCREMENT,
    product_name VARCHAR(100),
    category_id INT,
    PRIMARY KEY (product_id),
    INDEX idx_category (category_id)
);

විස්තරය:

  • product_id ප්‍රාථමික යතුර වන අතර, අනන්‍යතාවය සහතික කරයි සහ NULL අගයන් අනුමත නොකරයි.
  • category_id තීරුවට ඉන්ඩෙක්ස් එකක් සකස් කර ඇත, ඒ මඟින් ප්‍රවර්ග-අධාරිත නිෂ්පාදන සෙවීම් වේගවත් වේ.

ප්‍රාථමික යතුරු සහ ඉන්ඩෙක්ස් අතර තීරණය කිරීමේ ක්‍රමය

  1. ප්‍රාථමික යතුර තේරීම
  • දත්තය අනන්‍යව හඳුනාගත හැකි තීරුවකට ප්‍රාථමික යතුර සකස් කරන්න.
  • සෑම වගුවකටම නියමිතව එක් ප්‍රාථමික යතුරක් තිබිය යුතුය.
  1. ඉන්ඩෙක්ස් භාවිතය
  • ප්‍රාථමික යතුරට අයත් නොවන, නිතර සෙවීම් කරන තීරුවල ඉන්ඩෙක්ස් එකක් එක් කරන්න.
  • උදාහරණය: username හෝ email වැනි විමසුම් වල නිතර භාවිතා වන තීරුවල.
  1. සටහන්
  • ඉන්ඩෙක්ස් බොහෝ වශයෙන් තිබීම ඇතුළත් කිරීම සහ යාවත්කාලීන කිරීමේ කාර්ය සාධනය අඩු කරයි. අවශ්‍ය ඉන්ඩෙක්ස් පමණක් සකස් කිරීම නිර්දේශිතය.

6. ප්‍රාථමික යතුරු පිළිබඳ වැදගත් සටහන්

ප්‍රාථමික යතුරු (PRIMARY KEY) දත්ත ගබඩා සැලසුම් කිරීමේ අත්‍යවශ්‍ය භූමිකාවක් ගනී, නමුත් ඒවා නිවැරදිව සැලසුම් කර කළමනාකරණය නොකළහොත් කාර්ය සාධනය සහ අඛණ්ඩතාවය පිළිබඳ ගැටළු ඇති විය හැක. මෙම කොටස ප්‍රාථමික යතුරු සම්බන්ධයෙන් වැදගත් සැලකිලි සහ හොඳම ක්‍රියාමාර්ග පැහැදිලි කරයි.

ප්‍රාථමික යතුර ඉවත් කිරීම හෝ වෙනස් කිරීම පිළිබඳ සටහන්

ප්‍රාථමික යතුර ඉවත් කිරීමේ ක්‍රමය

ප්‍රාථමික යතුර ඉවත් කිරීමට, ALTER TABLE ප්‍රකාශනය භාවිතා කරන්න.

ALTER TABLE users DROP PRIMARY KEY;

සටහන්:

  1. ප්‍රාථමික යතුර ඉවත් කිරීම එය මත නිර්මාණය වූ ඉන්ඩෙක්ස් එකත් ඉවත් කරයි.
  2. විදේශ යතුරු සීමා ප්‍රාථමික යතුරට පදනම් වූවා නම්, ඉවත් කිරීමේ ක්‍රියාව අසාර්ථක වේ. ඔබට එම විදේශ යතුරු සීමා පෙර ඉවත් කළ යුතුය.

ප්‍රාථමික යතුර වෙනස් කිරීමේ ක්‍රමය

පවතින ප්‍රාථමික යතුර වෙනස් කිරීමට, පහත පියවර අනුගමනය කරන්න:

  1. වත්මන් ප්‍රාථමික යතුර ඉවත් කරන්න.
  2. නව ප්‍රාථමික යතුර එක් කරන්න.

උදාහරණය:

ALTER TABLE users DROP PRIMARY KEY;
ALTER TABLE users ADD PRIMARY KEY (username);

ප්‍රාථමික යතුර තේරීමේ සැලකිලි

  1. නිවැරදි තීරුව තෝරන්න
  • ප්‍රාථමික යතුර සඳහා අනන්‍යතාවය සහතික කළ හැකි තීරුවක් තෝරන්න.
  • සාමාන්‍ය විකල්පයන් අතර: wp:list /wp:list
    • A numeric type with auto-increment (AUTO_INCREMENT) (example: id )
    • A natural key (example: employee number or product code)
  1. නිතර වෙනස් වන තීරුවලින් වැළකී සිටින්න
  • ප්‍රාථමික යතුරේ අගය නිතර යාවත්කාලීන කිරීම කාර්ය සාධනයට අහිතකර බලපෑම් ඇති කරයි.
  1. දිගු අක්ෂර මාලා වලින් වැළකී සිටින්න
  • දිගු ස්ට්‍රින් (උදාහරණයක්: අක්ෂර 200ක ස්ට්‍රින් වර්ගයක්) ප්‍රාථමික යතුරක් ලෙස භාවිතා කිරීම සෙවීම් සහ මෙහෙයුම් සඳහා කාර්යක්ෂමතාවය අඩු කරයි.
  1. NULL අඩංගු කළ හැකි තීරුවලින් වැළකී සිටින්න
  • ප්‍රාථමික යතුරු NULL අගයන්ට ඉඩ නොදෙයි, එබැවින් ඔබට සෑම විටම අගයක් ඇති තීරුවක් තෝරාගත යුතුය.

ප්‍රාථමික යතුරක් සකස් කිරීමේ සාමාන්‍ය දෝෂ සහ ඒවා සවිස්තරාත්මකව සකස් කිරීමේ ක්‍රම

  1. දෝෂය: ERROR 1068 (42000): බහු ප්‍රාථමික යතුරු නිර්වචනය කර ඇත
  • කාරණය : wp:list /wp:list
    • ඔබ බහු ප්‍රාථමික යතුරු නිර්වචනය කිරීමට උත්සාහ කරන විට සිදුවේ.
  • විසඳුම : wp:list /wp:list
    • අනුපිටපත් ප්‍රාථමික යතුරු නිර්වචනය ඉවත් කරන්න. sql ALTER TABLE users DROP PRIMARY KEY; ALTER TABLE users ADD PRIMARY KEY (id);
  1. දෝෂය: ERROR 1452 (23000): ළමා පේළිය එකතු කිරීමට හෝ යාවත්කාලීන කිරීමට නොහැක: විදේශ යතුරු සීමාව අසාර්ථකයි
  • කාරණය : wp:list /wp:list
    • විදේශ යතුරු සීමාව ප්‍රාථමික යතුරට ගැලපෙන්නේ නැති විට සිදුවේ.
  • විසඳුම : wp:list /wp:list
    • ප්‍රාථමික යතුර සහ විදේශ යතුර අතර දත්ත වර්ග සහ සීමා සමානව තබන්න.
  1. දෝෂය: ERROR 1265 (01000): තීරුව සඳහා දත්ත කප්පාදු විය
  • කාරණය : wp:list /wp:list
    • ප්‍රාථමික යතුර සඳහා දත්ත අපේක්ෂිත වර්ගය හෝ දිග ඉක්මවා ගත් විට සිදුවේ.
  • විසඳුම : wp:list /wp:list
    • ප්‍රාථමික යතුරු තීරුවේ දත්ත වර්ගය සුදුසු ලෙස වෙනස් කරන්න හෝ ඇතුළත් කරන ලද දත්ත සකසන්න.

ප්‍රාථමික යතුරක් සකස් කිරීමේ හොඳ පුරුදු

  1. එක තීරුවක් ප්‍රමුඛ කරගන්න
  • එක තීරුවක ප්‍රාථමික යතුර (උදාහරණයක්: AUTO_INCREMENT සමඟ සංඛ්‍යාත්මක වර්ගයක්) භාවිතා කිරීම සරල හා කාර්යක්ෂම සැලසුමක් සලසයි.
  1. සංයුක්ත ප්‍රාථමික යතුරු සුදුසු ලෙස භාවිතා කරන්න
  • බහු තීරුවල එකතු කිරීමේදී, අවශ්‍ය තීරුවල සංඛ්‍යාව අවම ලෙස තබන්න.
  1. ප්‍රාථමික යතුරු තීරුවේ දත්ත වර්ගය උපරිම කරගන්න
  • කාර්යක්ෂමතාව වැඩිදියුණු කිරීම සඳහා සංඛ්‍යාත්මක වර්ග (උදාහරණයක්: INT) හෝ කෙටි ස්ට්‍රින් (උදාහරණයක්: VARCHAR(50)) තෝරන්න.
  1. දත්ත සමගිත්වය රැකගන්න
  • ඒකකත්වය සහ අඛණ්ඩතාව රැක ගැනීමට, ප්‍රාථමික යතුරු අගයන් සඳහා සුදුසු ඇතුළත් කිරීමේ වලංගුකරණය ක්‍රියාත්මක කරන්න.

7. ප්‍රාථමික යතුරු නිර්මාණය සඳහා හොඳ පුරුදු

දත්ත සමුදා සැලසුම් කිරීමේදී, ප්‍රාථමික යතුර (PRIMARY KEY) නිවැරදිව නිර්මාණය කිරීම දත්ත සමගිත්වය සහ කාර්යක්ෂමතාවයට සෘජු බලපෑමක් ඇත. මෙම කොටස ප්‍රාථමික යතුරු කාර්යක්ෂමව නිර්මාණය කිරීමේ හොඳ පුරුදු පැහැදිලි කරයි.

ස්වාභාවික යතුර vs. ප්‍රතිස්ථාපන යතුර: ඔබට කුමන එක තෝරාගත යුතුද?

ස්වාභාවික යතුර란 무엇인가?

ස්වාභාවික යතුර යනු පවතින ව්‍යාපාරික දත්ත භාවිතා කර ප්‍රාථමික යතුරක් ලෙස භාවිතා කිරීමයි.
උදාහරණ: සේවක අංකය, නිෂ්පාදන කේතය, විද්‍යුත් තැපැල් ලිපිනය.

ආකර්ෂණය:

  • දත්තයේ අර්ථය ස්වභාවිකව තේරුම්ගත හැක.
  • පවතින පද්ධති සහ ව්‍යාපාර නීති සමඟ හොඳින් ගැලපේ.

අප්‍රාත්‍යය:

  • එය දිගු ස්ට්‍රින් හෝ නිතර වෙනස් වන අගයන් ඇතුළත් කරන්නේ නම් කාර්යක්ෂමතාවයට බලපෑමක් විය හැක.
  • අනුපිටපත් දත්ත ඇති වීමේ අවදානම ඇත.

ප්‍රතිස්ථාපන යතුර란 무엇인가?

ප්‍රතිස්ථාපන යතුර යනු දත්ත සමුදාය තුළම ජනනය කරන ලද අද්විතීය හඳුනාගැනීමකි.
උදාහරණ: AUTO_INCREMENT සමඟ සංඛ්‍යාත්මක ID එකක්.

ආකර්ෂණය:

  • අද්විතීයභාවය සෑම විටම සහතික වේ.
  • සෙවීම සහ යාවත්කාලීන කිරීම කාර්යක්ෂම වේ.
  • අගය වෙනස් වීමේ අවදානම නොමැත.

අප්‍රාත්‍යය:

  • අගයට මනුෂ්‍ය අර්ථයක් නොමැති බැවින් දත්ත විශ්ලේෂණයට උපකාරී නොවේ.

ඔබට කුමන එක තෝරාගත යුතුද?

  • ප්‍රතිස්ථාපන යතුරු නිර්දේශිතයි : බොහෝ අවස්ථාවල, AUTO_INCREMENT සමඟ සංඛ්‍යාත්මක ID එකක් භාවිතා කිරීම හොඳම ක්‍රමය.
  • ස්වාභාවික යතුර තෝරාගත යුතු අවස්ථා : ව්‍යාපාර නීති ඒකකය ඉල්ලා සිටින විට සහ දත්ත අඛණ්ඩතාව පූර්ණයෙන්ම සහතික වන විට පමණි.

ප්‍රාථමික යතුරු සඳහා කාර්යක්ෂමතා උපරිම කිරීම

  1. සංඛ්‍යාත්මක වර්ග භාවිතා කරන්න
  • INT හෝ BIGINT වැනි සංඛ්‍යාත්මක වර්ග භාවිතා කිරීම ප්‍රාථමික යතුරු සෙවීම සහ සංසන්දනය වේගවත් කරයි.
  • උදාහරණ: sql CREATE TABLE customers ( customer_id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100), PRIMARY KEY (customer_id) );
  1. එය හැකි තරම් කුඩා ලෙස තබන්න
  • ප්‍රාථමික යතුර කුඩා වීමෙන් ගබඩා භාවිතය අඩු වේ සහ ඉන්ඩෙක්ස් කාර්යක්ෂමතාවය වැඩි වේ.
  • INT (4 බයිට්) සාමාන්‍යයෙන් භාවිතා වේ, BIGINT (8 බයිට්) විශාල දත්ත කට්ටල සඳහා පමණක් අවශ්‍ය වේ.
  1. ප්‍රාථමික යතුරු යාවත්කාලීන කිරීමෙන් වැළකී සිටින්න
  • ප්‍රාථමික යතුරක් යාවත්කාලීන කිරීම සම්බන්ධිත දර්ශක සහ විදේශ යතුරු සීමාදීමත් යාවත්කාලීන කරයි, එය වැදගත් කාර්ය සාධන අඩු වීමක් ඇති කරවිය හැක.

ප්‍රාථමික යතුරු සහ විදේශ යතුරු නිර්මාණය

  • ප්‍රාථමික යතුරු සාමාන්‍යයෙන් විදේශ යතුරු (FOREIGN KEY) සඳහා යොමු කිරීමේ ඉලක්කයක් ලෙස භාවිතා වේ. එබැවින්, ප්‍රාථමික යතුරු අද්විතීයභාවය සහ අඛණ්ඩතාවය විදේශ යතුරු සීමාදීම නිර්මාණය කිරීමේදී අත්‍යවශ්‍ය වේ.

උදාහරණය: ප්‍රාථමික යතුරු සහ විදේශ යතුරු නිර්මාණය

CREATE TABLE customers (
    customer_id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(100),
    PRIMARY KEY (customer_id)
);

CREATE TABLE orders (
    order_id INT NOT NULL AUTO_INCREMENT,
    customer_id INT NOT NULL,
    order_date DATE,
    PRIMARY KEY (order_id),
    FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);

විස්තරය:

  • orders වගුවේ customer_id තීරුව customers වගුවේ customer_id තීරුවට යොමු කරයි.
  • ප්‍රාථමික යතුරු අඛණ්ඩතාවය රැක නොගත්හොත්, විදේශ යතුරු සීමාදීම දෝෂ උත්පාදනය කළ හැක.

ප්‍රාථමික යතුරු නිර්මාණ පරීක්ෂා ලැයිස්තුව

  1. ප්‍රාථමික යතුර අද්විතීය බව සහතික කරද?
  2. ඔබ දිගු අක්ෂර මාලා හෝ නිතර වෙනස් වන තීරුවලින් ප්‍රාථමික යතුරක් තෝරා ගැනීමෙන් වැළැක්වෙයිද?
  3. ස්වභාවික යතුරට වඩා ප්‍රතිස්ථාපන යතුර වඩා සුදුසුදැයි ඔබ සිතලා තිබේද?
  4. ප්‍රාථමික යතුරු තීරුවේ දත්ත වර්ගය (උදාහරණként INT හෝ BIGINT) සුදුසුද?
  5. සංයුක්ත ප්‍රාථමික යතුරක් භාවිතා කරන විට, තීරු ගණන අවම තරමින් තබාගෙන සිටීද?

ප්‍රාථමික යතුරු නිසි ලෙස නිර්මාණය කිරීම දත්ත ගබඩා කාර්ය සාධනය වැඩි කරයි සහ දත්ත අඛණ්ඩතාව රැකගනී. ඊළඟ කොටසේ, “8. FAQ (නිතර අසන ප්‍රශ්න)” හි සාමාන්‍ය පාඨක ප්‍රශ්නවලට පිළිතුරු දෙනු ඇත.

8. FAQ (නිතර අසන ප්‍රශ්න)

මෙහිදී, MySQL ප්‍රාථමික යතුරු (PRIMARY KEY) පිළිබඳ සාමාන්‍ය ප්‍රශ්නවලට පිළිතුරු දෙනු ඇත. ආරම්භකයන් සිට මධ්‍යම පරිශීලකයන් දක්වා බොහෝවිට අසන කරුණු පහසු ලෙස පැහැදිලි කරමු.

ප්‍රාථමික යතුර සහ අද්විතීය යතුර අතර වෙනස කුමක්ද?

ප්‍රාථමික යතුර (PRIMARY KEY):

  • සෑම පේළියක්ම අද්විතීයව හඳුනාගනී.
  • වගුවකට එකක් පමණක් සකස් කළ හැක.
  • NULL අගයන්ට ඉඩ නොදේ.

අද්විතීය යතුර (UNIQUE KEY):

  • පේළියකට අද්විතීය අගයන් රඳවා තබයි, නමුත් වගුවකට බහු අද්විතීය යතුරු සකස් කළ හැක.
  • NULL අගයන්ට ඉඩ දේ (කෙසේ වෙතත්, NULL එක අද්විතීය අගයක් ලෙස සැලකේ).

උදාහරණය:

CREATE TABLE example (
    id INT NOT NULL AUTO_INCREMENT,
    email VARCHAR(100) UNIQUE,
    username VARCHAR(50),
    PRIMARY KEY (id)
);
  • id තීරුව ප්‍රාථමික යතුරයි.
  • email තීරුව අද්විතීය යතුරකි.

ප්‍රාථමික යතුරක් සකස් නොකළහොත් කුමක් සිදුවේ?

ඔබ ප්‍රාථමික යතුරක් සකස් නොකළහොත්:

  1. දත්ත අද්විතීය බව ඔබට සහතික කළ නොහැක.
  2. විදේශ යතුරු සීමාදීම සකස් කළ නොහැක.
  3. වගු දත්ත සෙවීම සහ මෙහෙයුම් කාර්යක්ෂම නොවිය හැක.

උපදෙස්:

  • සෑම වගුවකටම ප්‍රාථමික යතුරක් සකස් කිරීම සුදුසුය.

සංයුක්ත ප්‍රාථමික යතුරක් කවදා භාවිතා කළ යුතුද?

බහු තීරු සංයෝගයක් මඟින් අද්විතීය බව සහතික කළ යුතු අවස්ථාවල සංයුක්ත ප්‍රාථමික යතුරක් භාවිතා කරන්න.

උදාහරණය:

  • ඇණවුම් දත්ත කළමනාකරණය කරන විට, order_id සහ product_id සංයෝගය මඟින් අද්විතීය බව තහවුරු කරන්න.
    CREATE TABLE orders (
        order_id INT,
        product_id INT,
        quantity INT,
        PRIMARY KEY (order_id, product_id)
    );
    

සටහන:

  • සංයුක්ත ප්‍රාථමික යතුරු නිර්මාණය වැඩි සංකීර්ණ කරනු ඇති බැවින්, ඒවා ගැන සැලකිලිමත් ලෙස සිතන්න.

AUTO_INCREMENT අවශ්‍යද?

අවශ්‍ය නොවුවත්, පහත අවස්ථාවලදී ප්‍රයෝජනවත් වේ:

  • ප්‍රාථමික යතුරු තීරුව සඳහා ස්වයංක්‍රීයව අගයන් ජනනය කිරීමට අවශ්‍ය වන විට.
  • අද්විතීය බව සහතික කරන සංඛ්‍යාත්මක ප්‍රාථමික යතුරක් අවශ්‍ය වන විට.

උදාහරණය:

CREATE TABLE users (
    user_id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(100),
    PRIMARY KEY (user_id)
);

ප්‍රාථමික යතුරු අගයක් කෙසේ වෙනස් කළ හැකිද?

ඔබට ප්‍රාථමික යතුරු අගය සෘජුවම වෙනස් කළ හැකි නමුත් පහත කරුණු සලකන්න:

  1. විදේශ යතුරු සීමාදීම තිබේ නම්, සම්බන්ධිත දත්ත බලපෑම් ලැබිය හැක.
  2. යාවත්කාලීන වියදම් ඉහළ විය හැකි අතර කාර්ය සාධනයට බලපානු ඇත.

උදාහරණය:

UPDATE users SET user_id = 10 WHERE user_id = 1;

ප්‍රාථමික ප්‍රධාන කොලඹක් ක්‍රියාකාරිත්වයට බලපාන්නේ කෙසේද?

වාසිය:

  • ප්‍රාථමික ප්‍රධාන කොලඹකට ස්වයංක්‍රීයව සුඛෝපචාරයක් ඇති වන අතර, එය සෙවීම සහ වර්ගීකරණය වේගවත් කරයි.

** සටහන**:

  • ප්‍රාථමික ප්‍රධාන කොලඹකේ දත්ත වර්ගය හෝ දිග නිවැරදි නොවේ නම්, ක්‍රියාකාරිත්වය අඩු විය හැක.

ප්‍රාථමික ප්‍රධාන කොලඹ සඳහා හොඳම දත්ත වර්ගය කුමක්ද?

  • අංකීය වර්ග (INT හෝ BIGINT) බොහෝමයක් නිර්දේශ කෙරේ.
  • ඒවා සංකෝචනය වූ සහ සෙවීම සඳහා වේගවත් ය.
  • ඒවා ස්වයංක්‍රීය වර්ධනය (AUTO_INCREMENT) සමඟ භාවිතා කළ හැක.
  • විලාස වල භාවිතා කරන්නේ නම්, VARCHAR නිර්දේශ කෙරේ, නමුත් එය කෙටිව තබා ගැනීම වැදගත්.

ඔබට බහු ප්‍රාථමික ප්‍රධාන කොලඹ සකස් කළ හැකිද?

එක් පිඟුවකට එක් ප්‍රාථමික ප්‍රධාන කොලඹක් පමණි. කෙසේ වෙතත්, බහු කොලඹ ඒකාබද්ධ කිරීමෙන් සංයුක්ත ප්‍රාථමික ප්‍රධාන කොලඹක් සාදන්නට ඔබට හැක.

ප්‍රාථමික ප්‍රධාන කොලඹක් ඉවත් කිරීමේදී හෝ වෙනස් කිරීමේදී දෝෂ සිදු වුවහොත් ඔබ කළ යුත්තේ කුමක්ද?

පොදු දෝෂය:

  • විදේශීය ප්‍රධාන කොලඹ සීමාවන් නිසා ඔබට ප්‍රාථමික ප්‍රධාන කොලඹක් ඉවත් කළ හෝ වෙනස් කළ නොහැක.

විසඳුම:

  1. විදේශීය ප්‍රධාන කොලඹ සීමාව ඉවත් කරන්න.
  2. ප්‍රාථමික ප්‍රධාන කොලඹ වෙනස් කරන්න, ඉන්පසු විදේශීය ප්‍රධාන කොලඹ සීමාව යළි එකතු කරන්න.

උදාහරණය:

ALTER TABLE orders DROP FOREIGN KEY fk_customer_id;
ALTER TABLE orders DROP PRIMARY KEY;
ALTER TABLE orders ADD PRIMARY KEY (new_id);

9. නිගමනය

මෙම ලිපියෙහි, අපි MySQL ප්‍රාථමික ප්‍රධාන කොලඹ (PRIMARY KEY) විස්තරාත්මකව පැහැදිලි කළෙමු—මූලික සංකල්ප සහ සකස් කිරීම් ක්‍රම සිට වැදගත් සලකා බැලීම්, හොඳම පිළිවෙත්, සහ ප්‍රශ්න සහ පිළිතුරු දක්වා. ප්‍රාථමික ප්‍රධාන කොලඹ ඩේටාබේස් සැලසුම්කරණයේදී අත්‍යවශ්‍ය වන අතර, එය නිවැරදිව සකස් කිරීම දත්ත අනන්‍යතාව සහ ක්‍රියාකාරිත්වයට මහත් බලපෑමක් ඇති කරයි.

ප්‍රාථමික ප්‍රධාන කොලඹවල වැදගත්කම සමාලෝචනය කිරීම

  1. දත්ත අනන්‍යතාව සහතික කිරීම ප්‍රාථමික ප්‍රධාන කොලඹක් පිඟුවක එක් එක් පේළිය අනන්‍යව හඳුනාගනිමින් දූප්ලිකේට් දත්ත වැළැක්වීම සිදු කරයි.
  2. සෙවීම සහ මෙහෙයුම් සඳහා කාර්යක්ෂමතාව වැඩි දියුණු කිරීම ප්‍රාථමික ප්‍රධාන කොලඹකට ස්වයංක්‍රීයව සුඛෝපචාරයක් ඇති නිසා, සෙවීම් සහ දත්ත මෙහෙයුම් වේගවත් වේ.
  3. විදේශීය ප්‍රධාන කොලඹ සීමාවන් සඳහා පදනම ප්‍රාථමික ප්‍රධාන කොලඹක් සකස් කිරීමෙන් විදේශීය ප්‍රධාන කොලඹ සීමාවන් භාවිතයෙන් අඛණ්ඩතාව කළමනාකරණය කිරීමට හැකි වේ.

ප්‍රධාන සැලසුම් කොටස්

  • ප්‍රාථමික ප්‍රධාන කොලඹ සඳහා නිවැරදි කොලඹක් තෝරා ගන්න අනන්‍යතාව සහතික කරන සහ නිතර වෙනස් නොවන කොලඹකට ප්‍රාථමික ප්‍රධාන කොලඹක් සකස් කිරීම වැදගත්.
  • සංයුක්ත ප්‍රාථමික ප්‍රධාන කොලඹ සැලසුම්කරණයේදී සැලකිලිමත් වන්න සංයුක්ත ප්‍රාථමික ප්‍රධාන කොලඹ භාවිතා කරන්නේ අවශ්‍ය වන විට පමණක් සහ සැලසුම්කරණය අධික සංකීර්ණ කිරීමෙන් වළකින්න.
  • නිවැරදි දත්ත වර්ගය තෝරා ගන්න INT හෝ BIGINT වැනි අංකීය වර්ග භාවිතයෙන් කාර්යක්ෂම ක්‍රියාකාරිත්වය ලබා ගත හැක.

ඉගෙන ගත යුතු මීළඟ මාතෘකා

ප්‍රාථමික ප්‍රධාන කොලඹ පිළිබඳ ඔබේ අවබෝධය ගැඹුරු කළ පසු, පහත මාතෘකා ඉගෙන ගැනීමෙන් තවත් කාර්යක්ෂම ඩේටාබේස් සැලසුම්කරණයට හැකි වේ:

  1. විදේශීය ප්‍රධාන කොලඹ සකස් කිරීම (FOREIGN KEY) දත්ත අතර සම්බන්ධතා ගොඩනැගීම සහ අඛණ්ඩතාව පවත්වා ගැනීම ගැන ඉගෙන ගන්න.
  2. සුඛෝපචාර ඔප්ටිමයිසේෂන් ප්‍රාථමික නොවන කොලඹවලට සුඛෝපචාර එකතු කිරීමෙන් ප්‍රශ්න කිරීම් ක්‍රියාකාරිත්වය වැඩි දියුණු කිරීමේ තාක්ෂණයන් ඉගෙන ගන්න.
  3. නෝමලයිසේෂන් සහ ඩිනෝමලයිසේෂන් නෝමලයිසේෂන් වැනි ඩේටාබේස් සැලසුම්කරණ මූලධර්ම ඉගෙන ගන්න, සහ ක්‍රියාකාරිත්වය සඳහා ඩිනෝමලයිසේෂන් සලකා බලන්න.

අවසාන සටහන

MySQL ප්‍රාථමික ප්‍රධාන කොලඹ නිවැරදිව සැලසුම් කිරීම ඔබේ සම්පූර්ණ ඩේටාබේස්වල කාර්යක්ෂමතාව සහ විශ්වාසනීයභාවය වැඩි දියුණු කිරීමේ පළමු පියවරකි. මෙම ලිපිය ආධාරකයක් ලෙස භාවිතා කරමින් නිවැරදි ප්‍රාථමික ප්‍රධාන කොලඹ සකස් කිරීම සහ කළමනාකරණයේ දක්ෂතා ගොඩනඟන්න. ඉවත් ස්ථාවර ප්‍රාථමික ප්‍රධාන කොලඹ සැලසුම්කරණය සමඟ, ඩේටාබේස් සංවර්ධනය සහ මෙහෙයුම් සුමට වේ, එය සමස්ත উත්පාදනාත්මකභාවය වැඩි දියුණු කළ හැක.

මෙය මෙම ලිපියේ අවසානයයි. මෙය මාර්ගෝපදේශයක් ලෙස භාවිතා කරමින් සැබෑ ව්‍යාපෘතිවලදී කාර්යක්ෂම ප්‍රාථමික ප්‍රධාන කොලඹ සැලසුම්කරණය කරන්න.