Mysql
 sql >> база данни >  >> RDS >> Mysql

Има ли функция на MySQL като колоната TIMESTAMP на SQL Server?

Не съм сигурен, че разбирам защо това не работи за вашия сценарий. Е TIMESTAMP гарантирано, че е уникален в MS SQL Server?

Аха, виждам, че времевата марка на SQL Server е синоним на rowversion което е нещо като AUTO_INCREMENT на MySQL освен че генерира нова монотонно нарастваща стойност при UPDATE както и на INSERT .

Не, MySQL няма нищо подобно. MySQL също не поддържа SEQUENCE обект като Oracle или PostgreSQL или IBM DB2. Последователност ще ви позволи да генерирате нова стойност от тригер, например.

Прочетох актуализираната ви информация във вашия въпрос, така че разбирам проблема, който се опитвате да разрешите.

Това, което видях като алтернативно решение, е да добавите друг атрибут в таблицата, която обработвате, да го наречете is_processed или нещо. Въведете NULL, когато вмъквате нов ред. Когато стигнете до обработката, променете стойността в тази колона на 1. Тогава винаги ще знаете кои редове все още трябва да обработите – те ще бъдат редовете, където is_processed IS NULL .

Относно вашия коментар:Добре, виждам проблема. Всеки потребител има нужда от собствен изглед за това кои редове са нови/променени.

Друг хак, който съм виждал използван в MySQL за симулиране на обект на последователност, е таблица, която съдържа първичен ключ за автоматично увеличаване и нищо друго. Можете да генерирате нови уникални монотонно нарастващи стойности, като вмъкнете в тази таблица и след това върнете вмъкването назад.

CREATE TABLE sequence (id SERIAL) ENGINE=InnoDB; -- Must be InnoDB

START TRANSACTION;
INSERT INTO sequence () VALUES (); -- Yes this is a legal statement.
ROLLBACK;

SELECT LAST_INSERT_ID();

Не можете да стартирате и връщате транзакции в рамките на MySQL тригер, така че ще трябва да генерирате новите стойности в кода на приложението си.

В противен случай можете да преминете към PostgreSQL и да получите реална поддръжка за последователности.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връзка с MySQL база данни с визуализация на Visual Studio 2013

  2. Как да заредите JDBC конфигурация от пример за файл със свойства

  3. Откриване дали СТАРА стойност не е равна на НОВА стойност и СТАРА стойност е НУЛВА

  4. как да намеря запетая с mysql find_in_set

  5. Множество изображения за качване с PHP запазване само на един път на файл към MySQL база данни