আমি জানি এটি একটি পুরানো প্রশ্ন, তবে এখানে আরও একটি সমাধান রয়েছে:
এটি মূল সারণিতে একটি সারিটির নকল করে, প্রাথমিক কীটি স্বয়ংক্রিয়ভাবে বৃদ্ধি হয় এবং নতুন প্রধান টেবিল আইডির সাথে লিঙ্কযুক্ত-সারণী ডেটার অনুলিপি তৈরি করে।
কলামের নাম পাওয়ার জন্য অন্যান্য বিকল্প:
- থেকে কলম দেখান tablename
; (কলামের নাম: মাঠ)
-ডিসক্রিবি tablename
(কলামের নাম: মাঠ)
-২০ কলাম_নাম FROM তথ্য_চেমি.কলামগুলি WHERE টেবিলের নাম = 'টেবিলের নাম' (কলামের নাম: কলামের নাম)
//First, copy main_table row
$ColumnHdr='';
$Query="SHOW COLUMNS FROM `main_table`;";
$Result=Wrappedmysql_query($Query,$link,__FILE__,__LINE__);
while($Row=mysql_fetch_array($Result))
{
if($Row['Field']=='MainTableID') //skip main table id in column list
continue;
$ColumnHdr.=",`" . $Row['Field'] . "`";
}
$Query="INSERT INTO `main_table` (" . substr($ColumnHdr,1) . ")
(SELECT " . substr($ColumnHdr,1) . " FROM `main_table`
WHERE `MainTableID`=" . $OldMainTableID . ");";
$Result=Wrappedmysql_query($Query,$link,__FILE__,__LINE__);
$NewMainTableID=mysql_insert_id($link);
//Change the name (assumes a 30 char field)
$Query="UPDATE `main_table` SET `Title`=CONCAT(SUBSTRING(`Title`,1,25),' Copy') WHERE `MainTableID`=" . $NewMainTableID . ";";
$Result=Wrappedmysql_query($Query,$link,__FILE__,__LINE__);
//now copy in the linked tables
$TableArr=array("main_table_link1","main_table_link2","main_table_link3");
foreach($TableArr as $TableArrK=>$TableArrV)
{
$ColumnHdr='';
$Query="SHOW COLUMNS FROM `" . $TableArrV . "`;";
$Result=Wrappedmysql_query($Query,$link,__FILE__,__LINE__);
while($Row=mysql_fetch_array($Result))
{
if($Row['Field']=='MainTableID') //skip main table id in column list, re-added in query
continue;
if($Row['Field']=='dbID') //skip auto-increment,primary key in linked table
continue;
$ColumnHdr.=",`" . $Row['Field'] . "`";
}
$Query="INSERT INTO `" . $TableArrV . "` (`MainTableID`," . substr($ColumnHdr,1) . ")
(SELECT " . $NewMainTableID . "," . substr($ColumnHdr,1) . " FROM `" . $TableArrV . "`
WHERE `MainTableID`=" . $OldMainTableID . ");";
$Result=Wrappedmysql_query($Query,$link,__FILE__,__LINE__);
}
max(oldtable.id) + oldtable_temp.key
এই জাতীয় কিছু করব যাতে আমি নিশ্চিত হয়ে নিই যে আইডিগুলি বৃদ্ধি এবং অনন্য।