Geçerli auto_increment değeri olsun

4 Cevap php

I am doing mysql insert for my table using php. Autoincrement column name is "link_id" and "alias" colum is used to make SEO friendly url.

Benim ekleme sırasında, benim takma sütunun sonunda link_id değer eklemek istiyorum.

Yani varlık eklenen link_id değer olduğunu bilmek gerekir.

Ben başka bir sorgu yapmak istemiyorum.

mysql_insert_id () onun önceki sorguyu kullanarak bu yana, çalışmak ve güncel değil sorgu değil.

Teşekkürler

4 Cevap

Bence this - MySQL: Get next auto increment value yardımcı olabilir.

Sen kullanmanız gerekir SHOW TABLE STATUS:

$query = mysql_query(SHOW TABLE STATUS LIKE tablename); 
$row = mysql_fetch_array($query); 
$next_id = $row[‘Auto_increment’] ;

Size auto_increment sütun mevcut durumunu verecektir.

EDITED:

Bir sorguda bunu şöyle yapabilirsiniz:

INSERT INTO table_schema.table_name(column_name) 
VALUES ((SELECT AUTO_INCREMENT 
         FROM INFORMATION_SCHEMA.TABLES 
         WHERE TABLE_SCHEMA = 'table_schema' 
            AND TABLE_NAME = 'table_name'))

Size sütununda yeni auto_increment değeri verecektir column_name.

Eğer kabul ettiniz trigger in MySQL? Gibi bir şey:

DELIMITER //
CREATE TRIGGER `add_alias_id` AFTER INSERT ON `someTable`
    FOR EACH ROW BEGIN
        UPDATE 
            `someTable` 
        SET 
            `alias` = CONCAT(`alias`,NEW.`link_id`)
        WHERE
            `link_id` = NEW.`link_id`;
    END;    
//
DELIMITER ;

EDIT: Geçenlerde amiral gemisi yazılım olduğunu max (id) + 1 = sonraki id varsaymak için kullanılan bir şirket için çalışıyordu. Sorun eşzamanlılık; bu nadir bulunuyor, ama iki kişi kaos her türlü neden, aynı id alabilirsiniz. Değerini tahmin etmek için çalışırken son derece dikkatli olun.

Ben SEÇ ucunda senaryo bu tür işlemek.

For Example: insert into tablename(aliasroot) values('index.php?link_id=');

Bu, örneğin size verecek

Benim seçin ben 'tabloismi itibaren ad olarak select concat (aliasroot, link_id)' yapardı

bu her zaman güvenilir olmayacak olsa,) + + (mysql_insert_id kullanabilirsiniz.

ne iyi olurdu sorgu eklemek olacaktır, sonra geçerli id ​​kullanarak concat append ()