Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy możliwe jest WSTAWIANIE a następnie WYBIERANIE wstawionego wiersza jeden po drugim?

JEŚLI KORZYSTASZ Z INNODB:

Jeśli używasz INNODB, ponieważ zweryfikowałeś, że wiersz został wstawiony, powinien on zostać zwrócony za pomocą SELECT, o ile SELECT odpytywał klucz rzeczywistego wstawionego wiersza. (Czy na pewno nie korzystasz z funkcji takiej jak WSTAWIENIE OPÓŹNIONE? Może to uniemożliwić zwrócenie wiersza).

JEŚLI UŻYWASZ MYISAM:

Ponieważ MyISAM nie obsługuje transakcji, SELECT powinien zwrócić wstawkę, ale nie mogę znaleźć niczego, co stwierdzałoby, że jest to faktycznie gwarantowane.

UWAGA:Pierwszy adres URL wymieniony poniżej wskazuje, że używasz MYISAM (domyślnie zgodnie z tym łączem), WSTAWKI zablokują tabelę. Jednak drugi adres URL stwierdza, że ​​blokada umieszczona przez wstawkę jest blokadą czytelną, więc nie powinno to uniemożliwiać odczytu tabeli.

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

http://aarklondatabasetrivia .blogspot.com/2009/04/jak-zablokować-i-odblokować-tabele-w-mysql.html

JEŚLI KORZYSTASZ Z INNODB (CIĄG DALSZY):

    Jeśli w twoim systemie jest używana funkcja AUTOCOMMIT (nie jestem pewien), powinieneś zobaczyć wybrany wiersz (to pytanie mówi, że wstawiony wiersz został zweryfikowany jako dodany do bazy danych).

    Jeśli transakcja jest w użyciu, transakcja musi zostać zatwierdzona (pytanie stwierdza, że ​​wstawiony wiersz został zweryfikowany jako dodany do bazy danych).

    Czy na pewno zapytanie SELECT, które jest wykonywane za pierwszym razem, jest takie samo jak drugie?

    Czy na pewno $user['social_id'] czy jest ta sama wartość po INSERT i podczas SELECT?

    Jeśli z jakiegoś powodu używasz INSERT DELAYED, wiersz może nie zostać zwrócony

UWAGI:Zgodnie z tym adresem URL, jeśli rozpocząłeś transakcję, wybrane wiersze są pokazane w następnej instrukcji SELECT (nie w PHP):

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

To stwierdzenie oznacza, że ​​jeśli rozpoczniesz transakcję, nie musisz ustawiać AUTOCOMMIT:

"MySQL automatycznie zatwierdza również oświadczenia, które nie są częścią transakcji."

Ten adres URL opisuje, jak rozpocząć transakcję w PHP:

Przykłady transakcji PHP + MySQL




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wizualne tworzenie baz danych za pomocą MySQL Workbench

  2. użyj mysql SUM() w klauzuli WHERE

  3. JPA TemporalType.Date z błędną datą

  4. Kodowanie znaków JDBC

  5. mysql recursive(drzewo) kategoria rodzic-dziecko