在融合表中插入30条以上的记录时出错。
下面的代码工作正常,但如果存在超过30条记录则记录
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Authorization Request</title>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
<script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
<script type="text/javascript">
function auth() {
var config = {
'client_id': '607567025394-rmte05500pvsoj12dsrie1cbei5te506.apps.googleusercontent.com',
'scope': 'https://www.googleapis.com/auth/fusiontables',
'immediate': false
};
gapi.auth.authorize(config, function () {
console.log('login complete');
console.log(gapi.auth.getToken());
});
}
function insert_row() {
gapi.client.setApiKey('AIzaSyAnEhw4Y7n5V7bN226wWo0tHs0Bd7jAzxA');
gapi.client.load('fusiontables', 'v1', function () {
var i;
for (i = 0; i < 32; i++) {
var query = "INSERT INTO 1v228snvOypXSvzbtgZP_nhe_GcmBROV5G7lA0T0P(col0,col1,col2) VALUES ('a','a', 'a')";
gapi.client.fusiontables.query.sql({ sql: query }).execute(function (response) { console.log(response); });
}
});
}
</script>
</head>
<body>
<button onclick="auth();">Authorize</button>
<br />
<button onclick="insert_row();">Insert Data</button>
<br />
<button onclick="showMap();">Show Map</button>
<br />
<div id="map-canvas"></div>
</body>
</html>
错误:
无法加载资源:服务器响应状态为403(禁止) Working_Insert_FT_Sample1.htm:33Object {code: 403, data: Array[1], message: "Rate Limit Exceeded", error: Object}
答案 0 :(得分:0)
点击此处的文档:https://developers.google.com/fusiontables/docs/v1/sql-reference
SQL INSERT命令可以对多行进行分组,因此您只需要对服务器进行一次调用。这应该避免速率限制。只需将INSERT语句与';'连接即可分隔器。
请参阅此说明!
注意:您最多可以列出500个INSERT语句,以_分隔 分号,在一个请求中,只要数据的总大小确实如此 不超过1 MB并且正在添加的表格单元格的总数 不超过10,000个细胞。如果要插入大量行, 而是使用导入方法,这将更快,更可靠 而不是使用许多SQL INSERT语句。
请注意,UPDATE和DELETE语句不允许这样做!如果您需要这些,则必须对代码进行更多管道处理,例如:实施延迟和重试,并在后端完成工作。