public Boolean addUrlTypeAndActionColumn(String tableName, String columnTypeName,
			String columnActionName) {
		if (!addNewColumn(tableName, columnTypeName, "TEXT"))
			return false;
		if (!addNewColumn(tableName, columnActionName, "TEXT"))
			return false;
		String sql = "select id,url,referurl,url_md5," + columnTypeName + ","
				+ columnActionName + " from " + tableName + "";
		ResultSet rs;
		int iRow = 0;
		try {
			rs = executeUpdateQuery(sql);
			rs.last();
			int rowNum = rs.getRow();
			ClsTime ct = new ClsTime(rowNum / NumPerFlicker);// 50Ϊһȵ
			ct.estimateStart(rowNum);
			rs.first();
			rs.previous();
			ClsStateRules csr = new ClsStateRules();// urlĹ
			String url = "";
			String referUrl = "";
			String url_md5 = "";
			while (rs.next()) {
				iRow = rs.getRow();
				ct.estimating(iRow);
				if (rs.getString(columnTypeName) != null
						&& rs.getString(columnActionName) != null
						&& rs.getString(columnTypeName) != ""
						&& rs.getString(columnActionName) != "") {// ѾдֵֶҪ
					continue;
				}
				if (rs.getString("url") != null) {
					url = rs.getString("url");
				}
				if (rs.getString("referurl") != null) {
					referUrl = rs.getString("referurl");
				}
				if (rs.getString("url_md5") != null) {
					url_md5 = rs.getString("url_md5");
				}
				if (referUrl.equals("null/##"))
					referUrl = "";
				csr.initStateVariable(url, referUrl, url_md5);
				rs.updateString(columnTypeName, csr.getPageTypeName());
				rs.updateString(columnActionName, csr.getUserActionName());
				rs.updateRow();
			}
			rs.close();
			ct.estimateEnd();
			return true;
		} catch (SQLException e) {
			System.out.println("ڴ" + iRow + "еʱ");
			e.printStackTrace();
			return false;
		}
	}