Jump to content

Recommended Posts

Posted (edited)
CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 ts_update   TIMESTAMP
 -- ...
);

com estes campos deixas de necessitar de criar código para esse tipo de acção.

o campo ts_creation terá a data/hora de criação do registo e o campo ts_update terá sempre a data/hora da última actualização do registo na base de dados.

conclusão : a solução nem sequer é PHP ...

Edited by HappyHippyHippo
  • Vote 2
IRC : sim, é algo que ainda existe >> #p@p
Posted

CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 ts_update   TIMESTAMP
 -- ...
);

com estes campos deixas de necessitar de criar código para esse tipo de acção.

o campo ts_creation terá a data/hora de criação do registo e o campo ts_update terá sempre a data/hora da última actualização do registo na base de dados.

conclusão : a solução nem sequer é PHP ...

Não deu fica a data e a hora mas com '0'

Posted

O que eu acho que ele quer dizer é um campo DATE...

Para inserires a data de registo em que o campo na base de dados é DATE então:

$data = date("Y-m-d");
$sql = mysql_query("INSERT INTO tabela (nome, email, data) VALUES('$nome', '$email', '$data')");

OU

se o campo for do tipo TIMESTAMP, em vez de teres date("Y-m-d"); poes time();

é isso?

Posted (edited)
CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT CURRENT_TIMESTAMP
 ts_update   TIMESTAMP
 -- ...
);

com estes campos deixas de necessitar de criar código para esse tipo de acção.

o campo ts_creation terá a data/hora de criação do registo e o campo ts_update terá sempre a data/hora da última actualização do registo na base de dados.

conclusão : a solução nem sequer é PHP ...

aprendi uma coisa nova e interessante! 🙂

Edit:

Estou a tentar criar esses dois campos na minha table e dá este erro:

SQL Error (1293): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
CII4fp4.png Edited by Devexz

Contador de calorias: caloriaspordia.com

Posted (edited)

uhm :\ ele nao parece aceitar ter 2 campos com default de CURRENT_TIME

provavelmente a data de atualizaçao vai ter de ser com php...

a menos que ai o @happyHippo saiba como dar a volta com o mysql...

pois ... esquecime que o MySQL tem essa estúpida limitação que somente um campo poderá ter como no create e on update o CURRENT_TIMESTAMP

não faz muito sentido, mas é com o que temos de viver.

sem entrar em processos a serem executados na criação de registos da tabela (solução 100% MySQL), o que é possivel é alterar o default do timestamp de criação para zero (0) e inserir "à mão":

CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT 0
 ts_update   TIMESTAMP -- sem nada indica "on create" e "on update" como CURRENT_TIMESTAMP
 -- ...
);

$data = time();

$sql = "INSERT
         INTO `utilizadores
            (
             -- ...
             ts_creation,
             -- ...
            )
       VALUES
            (
             -- ...
             '".date("Y-m-d H:i:s)."', -- não esquecer dos 's para indicar que é uma string
             -- ...
            );";
Edited by HappyHippyHippo
  • Vote 1
IRC : sim, é algo que ainda existe >> #p@p
Posted

$data = time();

$sql = "INSERT
	  INTO `utilizadores
		 (
		  -- ...
		  ts_creation,
		  -- ...
		 )
	VALUES
		 (
		  -- ...
		  '".date("Y-m-d H:i:s")."', -- não esquecer dos 's para indicar que é uma string
		  -- ...
		 );";

Corrigi o codigo 😉 (aspas)

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

pois ... esquecime que o MySQL tem essa estúpida limitação que somente um campo poderá ter como no create e on update o CURRENT_TIMESTAMP

não faz muito sentido, mas é com o que temos de viver.

sem entrar em processos a serem executados na criação de registos da tabela (solução 100% MySQL), o que é possivel é alterar o default do timestamp de criação para zero (0) e inserir "à mão":

CREATE TABLE tabela (
 -- ...
 ts_creation TIMESTAMP DEFAULT 0
 ts_update   TIMESTAMP -- sem nada indica "on create" e "on update" como CURRENT_TIMESTAMP
 -- ...
);

$data = time();

$sql = "INSERT
	  INTO `utilizadores
		 (
		  -- ...
		  ts_creation,
		  -- ...
		 )
	VALUES
		 (
		  -- ...
		  '".date("Y-m-d H:i:s)."', -- não esquecer dos 's para indicar que é uma string
		  -- ...
		 );";

pois... vi também uma resposta semelhante à cerca dessa limitação no stack.

mas obrigado pelo esclarecimento 😉

Contador de calorias: caloriaspordia.com

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.