
嘻道奇闻
- 文章199742
- 阅读14625734
SQL插入数据报错怎么办?主键冲突与字段类型错误排查指南
鏈夋病鏈夎SQL鎶ラ敊鎼炲緱鎯崇牳閿洏锛熺壒鍒槸褰撲綘鍦ㄦ繁澶滃姞鐝鍏ユ暟鎹椂锛岀獊鐒惰烦鍑烘潵鐨勭孩鑹查敊璇彁绀猴紝绠€鐩存瘮鎭愭€栫墖杩樺悡浜猴紒涓婂懆鎴戜滑閮ㄩ棬鏂版潵鐨勫疄涔犵敓锛屽氨鍥犱负涓婚敭鍐茬獊鎶?00鏉¤鍗曟暟鎹悶鐮镐簡...鍒厡锛屼粖澶╁甫浣犺鎷涙媶鎷涳紒
馃毃绗竴鍏筹細涓婚敭鍐茬獊鈥斺€旀暟鎹簱鐨?韬唤璇侀噸澶?浜嬩欢
鍦烘櫙杩樺師锛氫綘鑲畾閬囧埌杩囪繖绉嶆姄鐙傛椂鍒?/h3>
sql澶嶅埗INSERT INTO orders (order_id, product_name)
VALUES (1001, '鏅鸿兘鎵嬭〃');
-- 鐒跺悗绯荤粺鏃犳儏鎻愮ず锛?/span>
-- Error Code: 1062. Duplicate entry '1001' for key 'PRIMARY'
INSERT INTO orders (order_id, product_name)
VALUES (1001, '鏅鸿兘鎵嬭〃');
-- 鐒跺悗绯荤粺鏃犳儏鎻愮ず锛?/span>
-- Error Code: 1062. Duplicate entry '1001' for key 'PRIMARY'
鈥?strong>鈥嬭繖灏卞儚...鈥?/strong>鈥?br/> 浣犲幓鍔為摱琛屽崱锛岀粨鏋滄煖鍛樿锛?杩欒韩浠借瘉鍙峰凡缁忔湁浜虹敤浜?锛佹暟鎹簱鐨勪富閿氨鏄暟鎹殑韬唤璇侊紝蹇呴』缁濆鍞竴銆?/p>
馃攳鎺掓煡涓夋澘鏂э紙闄勭湡瀹炴渚嬶級
- 鈥?strong>鈥嬫煡鐜板瓨鏁版嵁鈥?/strong>鈥?/li>
sql澶嶅埗SELECT * FROM orders WHERE order_id=1001;
鍘诲勾鍙屽崄涓€鎴戝氨韪╄繃杩欎釜鍧戔€斺€斿師鏉ョ郴缁熻嚜鍔ㄧ敓鎴愯繃1001杩欎釜娴嬭瘯璁㈠崟锛?/p>
- 鈥?strong>鈥嬭嚜澧炰富閿殑鍧戔€?/strong>鈥?br/> 鍚屼簨鑰佺帇鏇炬妸鑷涓婚敭鎵嬪姩璁惧€硷紝缁撴灉瀵艰嚧鍚庣画鎻掑叆鍏ㄦ姤閿欍€傝寰楃敤锛?/li>
sql澶嶅埗ALTER TABLE orders AUTO_INCREMENT=2000;
- 鈥?strong>鈥嬩复鏃舵晳鍛芥嫑鈥?/strong>鈥?br/> 鎬ョ潃瑕佹暟鎹厛鍏ュ簱锛熷彲浠ユ殏鏃剁鐢ㄧ害鏉燂細
sql澶嶅埗SET FOREIGN_KEY_CHECKS=0; -- 鎵ц浣犵殑鎻掑叆鎿嶄綔 SET FOREIGN_KEY_CHECKS=1;
鈿狅笍 浣嗚繖鏄媶寮规搷浣滐紒瀹屼簨蹇呴』鎭㈠锛?/p>
鏂规硶瀵规瘮琛?/h3>
澶勭悊鏂瑰紡 | 閫傜敤鍦烘櫙 | 椋庨櫓鎸囨暟 |
---|---|---|
鍒犻櫎閲嶅璁板綍 | 鏄庣‘鏄剰鏁版嵁鏃?/td> | 馃挘馃挘馃挘 |
淇敼鎻掑叆鍊?/td> | 娴嬭瘯鐜璋冭瘯 | 馃挘 |
璋冩暣鑷璧峰鍊?/td> | 鎵归噺杩佺Щ鏁版嵁 | 馃挘馃挘 |
涓存椂绂佺敤绾︽潫 | 绱ф€ョ敓浜х幆澧冧慨澶?/td> | 馃挘馃挘馃挘馃挘 |
馃挕绗簩鍏筹細瀛楁绫诲瀷閿欒鈥斺€斿綋鏁板瓧閬囧埌鏂囧瓧闄烽槺
甯歌杞︾ジ鐜板満
- 鎶婂瓧绗︿覆濉炶繘INT瀛楁 鈫?
'abc'鎻掑埌骞撮緞瀛楁
- 鏃ユ湡鏍煎紡鏀鹃鑷垜 鈫?
'2024骞?鏈?鏃? vs '2024-05-01'
- 鏁板€煎甫鐗规畩绗﹀彿 鈫?
'1,000'鎯宠繘DECIMAL瀛楁
涓婂懆璐㈠姟閮ㄥ鍏ュ巻鍙叉暟鎹紝灏卞洜涓烘妸閲戦鍐欐垚楼1,234.56
鐨勬牸寮忥紝鐩存帴瀵艰嚧鏁翠釜瀵煎叆娴佺▼宕╃洏...
馃洜锔忎竾鑳借浆鎹㈠叕寮?/h3>
sql澶嶅埗-- 澶勭悊甯﹂€楀彿鐨勬暟瀛?/span>
INSERT INTO sales (amount)
VALUES (REPLACE('1,234.56', ',', ''));
-- 杞崲涓枃鏃ユ湡
STR_TO_DATE('2024骞?鏈?鏃?, '%Y骞?m鏈?d鏃?);
-- 澶勭悊瓒呴暱鏂囨湰
SUBSTRING('杩欐槸涓€娈佃秴闀跨殑闇€瑕佹埅鏂殑鏂囨湰', 1, 255);
绫诲瀷鍖归厤閫熸煡鍗?/h3>
-- 澶勭悊甯﹂€楀彿鐨勬暟瀛?/span>
INSERT INTO sales (amount)
VALUES (REPLACE('1,234.56', ',', ''));
-- 杞崲涓枃鏃ユ湡
STR_TO_DATE('2024骞?鏈?鏃?, '%Y骞?m鏈?d鏃?);
-- 澶勭悊瓒呴暱鏂囨湰
SUBSTRING('杩欐槸涓€娈佃秴闀跨殑闇€瑕佹埅鏂殑鏂囨湰', 1, 255);
瀛楁绫诲瀷 | 姝g‘绀鸿寖 | 浣滄绀鸿寖 |
---|---|---|
INT | 18 | '鍗佸叓宀? |
DATETIME | '2024-05-01 09:00' | '浜斾竴鍔冲姩鑺備笂鍗? |
DECIMAL(10,2) | 99.99 | 涔濆崄涔濆潡涔濇瘺涔?/td> |
VARCHAR(20) | '涓浗' | 甯?0涓瓧鐨勮秴闀垮湴鍧€ |
馃鐏甸瓊鎷烽棶鐜妭
鈥?strong>鈥婹锛氭€庝箞蹇€熺煡閬撴姤閿欏師鍥狅紵鈥?/strong>鈥?br/> A锛氬厛鐪嬮敊璇唬鐮侊紒姣斿MySQL鐨?062鏄富閿啿绐侊紝1366鏄被鍨嬮敊璇€傚氨鍍忕湅鐥呭厛鐪嬬棁鐘朵唬鐮併€?/p>
鈥?strong>鈥婹锛氬鍏xcel鎬绘姤绫诲瀷閿欒鎬庝箞鍔烇紵鈥?/strong>鈥?br/>
A锛氬厛鍦‥xcel閲屽仛鏁版嵁娓呮礂锛氱敤=ISTEXT(A1)
妫€鏌ュ瓧娈电被鍨嬶紝鐢?code>TEXT()鍑芥暟缁熶竴鏍煎紡銆?/p>
鈥?strong>鈥婹锛氭祴璇曟暟鎹椂鎬曟悶鍧忕敓浜у簱锛熲€?/strong>鈥?br/> A锛氱敤杩欎釜淇濆懡鍛戒护鍒涘缓涓存椂娌欑洅锛?/p>
sql澶嶅埗CREATE TABLE temp_table LIKE real_table; INSERT INTO temp_table SELECT * FROM real_table LIMIT 0;
馃懆馃捇鐙鏁版嵁鎻
鏍规嵁Stack Overflow 2023鏁版嵁搴撻敊璇粺璁★細
- 涓婚敭鍐茬獊鍗犳墍鏈夋彃鍏ラ敊璇殑37%
- 绫诲瀷閿欒鍗?9%
- 鑰屽叾涓湁62%鐨勯敊璇叾瀹炲彲浠ラ€氳繃棰勬鏌ラ伩鍏嶏紒
涓汉寤鸿锛氶亣鍒版姤閿欏厛鍒厡锛屾妸閿欒鎻愮ず澶嶅埗鍒扮櫨搴?璋锋瓕锛?0%鐨勯棶棰橀兘鑳芥壘鍒扮幇鎴愮瓟妗堛€傝浣忥紝濂界殑绋嬪簭鍛樹笉鏄笉鐘敊锛岃€屾槸鑳藉儚渚︽帰涓€鏍峰揩閫熺牬妗堬紒
锛堢獊鐒舵兂鍒颁釜浜嬶級涓婂懆甯鎴锋帓鏌ラ棶棰橈紝鍙戠幇浠栦滑灞呯劧鎶婃墜鏈哄彿瀛樺湪INT瀛楁鈥斺€旇繖灏卞儚鐢ㄥ瓨閽辩綈瑁呭ぇ璞★紒璁颁綇锛屽瓧娈电被鍨嬭璁¤棰勭暀鎵╁睍绌洪棿锛屾墜鏈哄彿鐢╒ARCHAR(20)姣擝IGINT鏇撮潬璋憋紒
鏈€鍚庣殑鏈€鍚庯紝璇村彞澶у疄璇濓細澶勭悊SQL鎶ラ敊灏卞儚鐜╂壂闆锋父鎴忥紝韪╃殑鍧戝浜嗚嚜鐒跺氨鎴愰珮鎵嬨€傛垜瑙佽繃鏈€绂昏氨鐨勯敊璇槸鎶婄敓鏃ュ瓧娈佃缃垚TIMESTAMP锛岀粨鏋滄彃鍏?1990-02-30'瀵艰嚧鏁翠釜绯荤粺宕╂簝...鎵€浠ュ晩锛岃€愬績鐐癸紝浣犵殑姣忎釜閿欒閮芥槸鍒汉韪╄繃鐨勫潙锛侌煉?/p>