Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL स्वैप प्राथमिक कुंजी मान

इसके लिए अस्थायी तालिकाओं का उपयोग न करें।

मैनुअल से :

mysql> SELECT * FROM temp_table, temp_table AS t2;
ERROR 1137: Can't reopen table: 'temp_table'

अद्यतन करें:

क्षमा करें अगर मुझे यह ठीक नहीं लगता है, लेकिन एक साधारण तीन तरह का आदान-प्रदान क्यों काम नहीं करता है?

इस तरह:

create table yourTable(id int auto_increment, b int, primary key(id));

insert into yourTable(b) values(1), (2);
select * from yourTable;

DELIMITER $$
create procedure pkswap(IN a int, IN b int)
BEGIN
select @max_id:=max(id) + 1 from yourTable;
update yourTableset [email protected]_id where id = a;
update yourTableset id=a where id = b;
update yourTableset id=b where id = @max_id;
END $$
DELIMITER ;

call pkswap(1, 2);

select * from yourTable;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. date_format के साथ mysql तारीख की तुलना

  2. PHP में Password_verify

  3. PHP/MySQL (InnoDB) के साथ TRANSACTION/COMMIT प्रदर्शन में इतना सुधार क्यों करता है?

  4. mysql डेटा के साथ उच्च-निम्न कीमत के आधार पर छँटाई

  5. mysql_connect () लोकलहोस्ट और 127.0.0.1 के बीच अंतर