sql >> Databáze >  >> RDS >> Mysql

Je možné VLOŽIT a následně VYBRAT vložený řádek jeden po druhém?

POKUD POUŽÍVÁTE INNODB:

Pokud používáte INNODB, protože jste ověřili, že řádek byl vložen, měl být vrácen pomocí SELECT, pokud SELECT dotazoval klíč skutečného řádku, který byl vložen. (Jste si jisti, že nepoužíváte funkci jako INSERT DELAYED? Ta by mohla zabránit vrácení řádku.)

POKUD POUŽÍVÁTE MYISAM:

Protože MyISAM nepodporuje transakce, SELECT by měl vrátit vložku, ale nemohu najít nic, co by tvrdilo, že je to skutečně zaručeno.

POZNÁMKA:První níže uvedená adresa URL uvádí, že pokud používáte MYISAM (výchozí nastavení podle tohoto odkazu), INSERTS tabulku uzamkne. Druhá adresa URL však uvádí, že zámek umístěný vložkou je čitelný zámek, takže to nemělo bránit čtení tabulky.

http://www.sitepoint.com/mysql-mistakes-php-developers/

http://aarklondatabasetrivia .blogspot.com/2009/04/how-to-lock-and-unlock-tables-in-mysql.html

POKUD POUŽÍVÁTE INNODB (POKRAČOVÁNÍ):

    Pokud se ve vašem systému používá AUTOCOMMIT (nejsem si jistý), měli byste vidět vybraný řádek (tato otázka uvádí, že vložený řádek byl ověřen jako přidán do databáze).

    Pokud se transakce používá, transakce musí být potvrzena (tato otázka uvádí, že vložený řádek byl ověřen jako přidán do databáze).

    Jste si jisti, že dotaz SELECT, který se provede poprvé, je stejný jako dotaz podruhé?

    Jste si jisti $user['social_id']? je stejná hodnota po INSERT a v době SELECT?

    Pokud z nějakého důvodu používáte INSERT DELAYED, řádek nemusí být vrácen

POZNÁMKY:Podle této adresy URL, POKUD jste zahájili transakci, vybrané řádky se zobrazí v dalším příkazu SELECT (ne v PHP):

http://zetcode.com/databases/mysqltutorial/transactions/

Toto prohlášení znamená, že pokud zahájíte transakci, nemusíte nastavovat AUTOCOMMIT:

"MySQL také automaticky potvrzuje příkazy, které nejsou součástí transakce."

Tato adresa URL popisuje, jak zahájit transakci v PHP:

Příklady transakcí PHP + MySQL




  1. Podpora PDO pro více dotazů (PDO_MYSQL, PDO_MYSQLND)

  2. Složité omezení cizího klíče v SQLAlchemy

  3. Jak popsat problém s výkonem v relační databázi?

  4. SQL:Vyberte poslední záznam pro každý den s daným datem