わかりました、 NO-ID
(列の奇妙な名前ですが、それは重要ではありません) はAUTO_INCREMENT
であるため、その値 (定義上は一意です) を基本の UNIX タイムスタンプに追加するだけです。何百万もの行がある場合にのみ問題になりますが、値が不足しないように十分に過去に開始する必要があります。
2012-01-01 00:00:00
たとえば、次のように開始します。
SELECT UNIX_TIMESTAMP('2012-01-01 00:00:00');
+---------------------------------------+
| UNIX_TIMESTAMP('2012-01-01 00:00:00') |
+---------------------------------------+
| 1325397600 |
+---------------------------------------+
そのベース タイムスタンプに主キー値を追加して、すべての行を更新します。
UPDATE `notes` SET `timecreated` = FROM_UNIXTIME(1325397600 + `NO-ID`);
行を削除した場合、それらは連続した秒にはなりませんが、それでも一意です。
基本タイムスタンプから開始する必要さえありません。1970 年 1 月 1 日プラスまたはマイナスのサーバーのタイムゾーンである 0 から始めることができます。
UPDATE `notes` SET `timecreated` = FROM_UNIXTIME(`NO-ID`);
次のようなタイムスタンプになります
1970-01-01 00:00:01
1970-01-01 00:00:02
1970-01-01 00:00:03
1970-01-01 00:00:04
...
コメント後の更新:
datecreated
フィールドを 1 日増やすには、同じパターンを使用しますが、以下を使用しDATE_ADD()
ます。
UPDATE `notes` SET `datecreated` = DATE_ADD('2012-01-01', INTERVAL `NO-ID` DAY)
ただし、注意してください。開始日から数秒を使い果たすよりも、開始日から数日を使い果たす方がはるかに簡単です...