Autor Zpráva
Enko
Profil *
Ahoj, napsal jsem si zachytávač chyb, při ukládání nových dat do MySQL tabulky. A občas se mi ten záznam neuloží a zapíše mi to následující chybu:

Nepodařilo se uložit data do MySQL
1062 - Duplicate entry '2012-08-08 20:15:02-' for key 'Time_MAC'
Pod čarou následuje celý SQL dotaz
----------------------------------
INSERT INTO users
(`id`, `browser`, `browser_version`, `browser_user_agent`, `platform`, `identity`, `mac`, `ip`, `timestamp`, `hostname`, `link`, `error`, `lang`)
VALUES
(null, 'BlackBerry', '534.8', 'Mozilla/5.0 (BlackBerry; U; BlackBerry 9780; cs) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.668 Mobile Safari/534.8+', 'BlackBerry', '', '', '', null, '', '', '', 'cs')

Můžete mi někdo prosím poradit, proč se tak čas od času děje?


Přikládám strukturu tabulky
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;


CREATE TABLE IF NOT EXISTS `users` (
  `id` int(14) NOT NULL AUTO_INCREMENT,
  `browser` varchar(99) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `browser_version` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `browser_user_agent` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `platform` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `identity` varchar(99) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'textový identifikátor jednotky',
  `mac` varchar(40) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `ip` varchar(40) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  `hostname` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT 'jmeno jednotky na ktere je uzivatel',
  `link` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `error` varchar(999) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `lang` varchar(2) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `Time_MAC` (`timestamp`,`mac`),
  KEY `timestamp` (`timestamp`),
  KEY `mac` (`mac`),
  KEY `identity` (`identity`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2688 ;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;



Pokud to správně chápu, pomohlo by odstranění UNIQUE KEY `Time_MAC` (`timestamp`,`mac`)?
Alphard
Profil
Enko:
Pokud to správně chápu, pomohlo by odstranění UNIQUE KEY `Time_MAC` (`timestamp`,`mac`)?
Ano, proč jste to definoval jako unikátní, má to nějaký smysl?
Enko
Profil *
Teď když na to koukám, musel jsem se překliknout při vytváření. Děkuju za radu, v podstatě to nemá žádný smysl

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: