2012-08-29 47 views
0

的兩排我嘗試下一個腳本:如何插入相同的UUID在兩個不同的表

// Insert data into mysql 

$qry="INSERT INTO $tbl_name1 (ID, REFERENCE, CODE, NAME) VALUES (UUID(), '$REFERENCE', '$CODE', '$NAME')"; 
$result=mysql_query($qry); 

$qry2="INSERT INTO $tbl_name2 (PRODUCT) VALUES ('$ID')"; <--- Here is a problem 
$result=mysql_query($qry2) 

我不知道該怎麼兩個插入相同的UUID在simultanoiusly兩個表。請幫幫我! 我將非常感謝您的支持!

DONE !!! 的工作腳本:

$q = "SELECT UUID() AS uid"; 
$res = mysql_query($q) or die('q error: '.mysql_error()); 
$row = mysql_fetch_assoc($res); 

// Insert data into mysql 
$qry="INSERT INTO $tbl_name1 (ID, REFERENCE, CODE, NAME) VALUES ('".$row['uid']."', '$REFERENCE', '$CODE', '$NAME')"; 
$result=mysql_query($qry) or die('err 034r '.mysql_error()); 

$qry2="INSERT INTO $tbl_name2 (PRODUCT) VALUES ('".$row['uid']."')"; 
$result=mysql_query($qry2) or die('gg2345 '.mysql_error()); 
+0

你爲什麼不使用自動遞增的ID - 像所有其他人呢? – 2012-08-29 10:10:35

回答

2

只是做SELECT UUID()和這些值放到語句中的PHP。像這樣(未經):

$result = mysql_query("SELECT UUID() AS UUID") or die('SQL error: ' . mysql_error()); 
$row = mysql_fetch_assoc($result); 
$UUID = $row["UUID"]; 

$qry="INSERT INTO $tbl_name1 (ID, REFERENCE, CODE, NAME) VALUES ('$UUID', '$REFERENCE', '$CODE', '$NAME')"; 
$result=mysql_query($qry); 

$qry2="INSERT INTO $tbl_name2 (PRODUCT) VALUES ('$UUID ')"; <--- Here is a problem 
$result=mysql_query($qry2) 

另一種方法是使用用戶定義的變量(see SQL Fiddle):

SET @UUID = (SELECT UUID() AS UUID); 
INSERT INTO test1 VALUES(@UUID, "foo"); 
INSERT INTO test1 VALUES(@UUID, "bar"); 
+0

TBK:我收到一行錯誤$ UUID = row [「UUID」]; –

+0

在INSERT期間UUID自動關聯的問題......我不認爲可以在INSERT –

+0

@SergiuCostas之前選擇它:SELECT UUID()是MySQL中的有效SQL語句。它應該給你一個你可以用來插入的UUID。另一種解決方案是用戶定義的變量 - 請參閱我的示例中的「@ UUID」。這將是我的首選方式,因爲它不需要您隨時從PHP訪問UUID。 – tbl

1

假設ID是表唯一索引之前還是可以$qry2補充:您發送INSERT年代以前

$ID = mysql_insert_id(); 
相關問題